Sorry, my previous message got truncated.
I was trying to say that many iteratees like iterReverse can be
defined nicely using combinators from Control.Applicative. You end up
with much cleaner code.
Also, iterLines doesn't work as the name would suggest. It only
consumes one line from the input
Hi Haskell Cafe,
I've defined the following reverse echo server that echos text back in
reverse:
module Programs.TcpEchoIterServer where
import Control.Concurrent
import Control.Exception
import Control.Monad
import Control.Monad.Trans
import Data.IterIO
import Data.IterIO.Inum
import Network
At Mon, 4 Jul 2011 20:36:33 +1000,
John Ky wrote:
Hi Haskell Cafe,
enum |$ inumLines .| inumReverse .| inumUnlines .| iter
...
iterLines :: (Monad m) = Iter L.ByteString m [L.ByteString]
iterLines = do
line - lineI
return [line]
iterUnlines