
blah = do
fp <- openFile "file" ReadMode
run_ $ (ET.enumHandle fp $= ET.lines) $$ printChunks True
printChunks is super duper simple:
printChunks printEmpty = continue loop where
loop (Chunks xs) = do
let hide = null xs && not printEmpty
CM.unless hide (liftIO (print xs))
continue loop
loop EOF = do
liftIO (putStrLn "EOF")
yield () EOF
Just replace print with whatever IO action you wanted to perform.
On Mon, Jul 25, 2011 at 4:31 AM, Yves Parès
Sorry, I'm only beginning to understand iteratees, but then how do you access each line of text output by the enumeratee "lines" within an iteratee?
2011/7/24 Felipe Almeida Lessa
On Sun, Jul 24, 2011 at 12:28 PM, Yves Parès
wrote: If you used Data.Enumerator.Text, you would maybe benefit the "lines" function:
lines :: Monad m => Enumeratee Text Text m b
It gets arbitrary blocks of text and outputs lines of text.
But there is something I don't get with that signature: why isn't it: lines :: Monad m => Enumeratee Text [Text] m b ??
Lists of lines of text?
Cheers, =)
-- Felipe.
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe