Doing IO in foldr repeats lines?
Sat, 20 Jan 2001 21:17:43 +0000
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
prints (with both GHC and hugs):
and I really don't understand why. Is the code re-evaluated every time
foldl is expanded or something?