[Haskell] the wonders of lazy IO

Johannes Waldmann waldmann at imn.htwk-leipzig.de
Tue Apr 19 01:29:45 EDT 2005

Thanks for the comments. Indeed I knew the solution -
once I isolated the problem.

Note that ghc(i) behaves differently when running main2 below
(it says "file is locked"). (hugs does not complain.)

import System

main1 = do
     system "echo A > foo"
     a <- readFile "foo"
     system "echo B > foo"
     b <- readFile "foo"
     print (a == b)

main2 = do
     writeFile "foo" "A"
     a <- readFile "foo"
     writeFile "foo" "B"
     b <- readFile "foo"
     print (a == b)

-- Johannes Waldmann -- Tel/Fax (0341) 3076 6479/80 --
---- http://www.imn.htwk-leipzig.de/~waldmann/ -------

More information about the Haskell mailing list