[Haskell-cafe] IO and lazyness.
D.V.
dav.vire+haskell at gmail.com
Tue Mar 6 16:56:52 EST 2007
> The problem is that hGetContents only reads the contents of the file on demand
> and, without the 'return $!' you don't demand the value until somewhere
> outside of rechf. By this point the hClose has happened and hGetContents has
> no access to the file => no lines => no result.
I must be really dumb but I don't get why 'at this point the hClose
has happened'
It seemed to me that when I typed at ghci's prompt rechf "xxxx" it
tries to evaluate it.
that makes it perform the IO action of opening the file, then
performing the IO action of evaluating ( since I need the result )
rechf2 "xxxx" and *lastly* performing the IO action of closing the
file.
So to me either I'm just too confused to understand or something
doesn't work as it should be.
I also tried using readFile ( again following Jeremy's suggestion )
and it works :
> rechf r = do
> f <- readFile "liste"
> return $ rech r $ lines f
More information about the Haskell-Cafe
mailing list