[Haskell-cafe] Confused about my IterIO code
dm-list-haskell-cafe at scs.stanford.edu
dm-list-haskell-cafe at scs.stanford.edu
Thu Jun 30 17:20:00 CEST 2011
At Thu, 30 Jun 2011 23:53:02 +1000,
John Ky wrote:
>
> But all I've done is:
>
> enum |$ inumReverseLines .| iter
>
> inumReverseLines = mkInum $ do
> line <- lineI
> return (L.reverse (L.concat [line, C.pack "\n"]))
mkInum repeatedly invokes its iter argument so as to keep producing
chunks. If you want to reverse only one line, it might be easiest to
use something along the lines of:
mkInumM $ do
line <- lineI
ifeed (L.reverse (L.concat [line, C.pack "\n"]))
mkInumM is a more manual Inum construction function that doesn't
automatically do things like loop or handle EOF conditions.
David
More information about the Haskell-Cafe
mailing list