20 Jan
2001
20 Jan
'01
9:17 p.m.
Hi all The following code:
module Main (main) where
import IO
main :: IO() main = do _ <- foldl foo (return 14) ["qq\n", "ww\n", "ee\n"] putStr ""
foo :: IO Int -> String -> IO Int foo io_l s = do l <- io_l () <- putStr s io_l
prints (with both GHC and hugs): qq ww qq ee qq ww qq and I really don't understand why. Is the code re-evaluated every time foldl is expanded or something? Thanks Ian, confused