Am Donnerstag, 28. Juli 2005 20:01 schrieb Diego y tal: > I was developing a web site using haskell programs as cgi's, and I found > a strange behavior that I would like to know whether it is normal. I > have reduced the "problem" to the next program: > > fEntrada = "fich.txt" > fSalida = "fich.txt" > > creaFich :: IO() > creaFich = writeFile fEntrada "me molo" > > main :: IO () > main = do x <- readFile fEntrada > -- print x -- In the second try, uncomment this line > writeFile fSalida "" > writeFile fSalida x > > Running the next commands (suposing that $ is the prompt of a linux > shell and main> is the prompt of hugs) > > main> creaFich > main> main > $ cat fich.txt > > will give us different results if we comment or uncomment the second > line of the main body, although the meaning of the program is the same.
In my opinion, the program should signal an error if the print x line is commented out since then the read handle isn't closed but semi-closed at the point of the first writeFile, and therefore write access shouldn't be allowed (see library documentation of System.IO). In fact, GHC and GHCi behave this way. > [...] Regards, Wolfgang _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell