
30 Jan
2008
30 Jan
'08
5:46 p.m.
Dan Weston wrote:
Now I'm confused (which happens quite a lot, I'm afraid!)
Prelude> readFile undefined *** Exception: Prelude.undefined
Prelude> readFile undefined >>= \cs -> putStrLn "Hello" *** Exception: Prelude.undefined
It seems that readFile is strict in its argument. As for getLine, it has no argument to be strict in.
This is the confusion between strict/lazy in the ordinary language semantics sense, and strictIO/ lazyBrokenDangerousHereBeGremlinsSemanticallyUnsoundIO Jules