[Haskell-cafe] Monad transformer to consume a list

Tom Schrijvers Tom.Schrijvers at cs.kuleuven.be
Tue Apr 7 06:01:47 EDT 2009


>> Hello,
>> 
>> is there a monad transformer to consume an input list? I've got external
>> events "streaming into the monad" that are consumed on demand and I'm
>> not sure if there's something better than a StateT.
>
> I wondered that, too. I wondered whether there is something inverse to 
> Writer, and Reader is appearently not the answer. Now I think, that State is 
> indeed the way to go to consume a list. Even better is StateT List Maybe:
>
> next :: StateT [a] Maybe a
> next = StateT Data.List.HT.viewL   -- see utility-ht package

Or make the transformer a MonadPlus transformer and call mzero for the 
empty list?

Tom

--
Tom Schrijvers

Department of Computer Science
K.U. Leuven
Celestijnenlaan 200A
B-3001 Heverlee
Belgium

tel: +32 16 327544
e-mail: tom.schrijvers at cs.kuleuven.be
url: http://www.cs.kuleuven.be/~toms/


More information about the Haskell-Cafe mailing list