Hi, I'm trying to do IO and it isn't lazy enough. My problem seems similar to this one: Write a function that lazily reads characters from stdin, just like getContents does. These two don't work:
lazyRead :: IO String lazyRead = do first_char <- getChar rest <- lazyRead return $ first_char:rest lazyRead2 :: IO String lazyRead2 = (liftM2 (:)) getChar lazyRead2 because neither has the intended behavior, because if I type: lazyRead >>= putChar . head Then it seems that all of stdin is read, not just the first character, which is different from: getContents >>= putChar . head which only reads one character. So how do you write getContents in haskell? Thanks for any insight. -- Ben Escoto
pgp00000.pgp
Description: PGP signature
_______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell