8 Jan
2003
8 Jan
'03
6:11 p.m.
How can I recursively collect a list of things while in the IO monad, and return the list lazily as it's constructed rather than waiting until they've all been collected? Perhaps an example will make things clearer: main = do xs <- getStrings putStrLn (head xs) getStrings = do x <- getLine if x == "stop" then return [] else do xs <- getStrings return (x:xs) How can I make getStrings lazy? main should be able to terminate immediately after I've entered just one line. Amanda ps: This is a fake example, I'm really trying to lazily retrieve answers fetched from an Oracle SQL query.