On Tue, 7 Apr 2009, Stephan Friedrichs wrote:
Henning Thielemann wrote:
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
But a StateT provides the power to modify the list in other ways than
reading the first element (modify (x:)). Maybe ParsecT is closer to what
I'm looking for ;)
If you want to restrict the functionality of StateT, then wrap it in a
newtype.
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe