
On Tue, Dec 20, 2005 at 10:04:16PM +0100, Benjamin Franksen wrote:
and would also be unsafe without some kind of strong guarantee that each single 'world' value is unique. (This is how they do it in Clean.) Imagine
g :: World -> World g world = let world' = putStrLn "first line" world in putStrLn "second line" world -- oops, forgot the "'"
A more scary example: getLine :: World -> (World, String) getTwoLines :: World -> (World, String, String) getTwoLines world = let (world', line1) = getLine world (world'', line2) = getLine world -- oops, should use world' here in (world'', line1, line2) So we forgot about world', but used line1, which was produced together with world'. Best regards Tomasz -- I am searching for a programmer who is good at least in some of [Haskell, ML, C++, Linux, FreeBSD, math] for work in Warsaw, Poland