[Haskell] Re: state of HaXml?
Norman Ramsey
nr at eecs.harvard.edu
Thu Jan 4 21:05:26 EST 2007
> There seems to be a misunderstanding here: readFile in itself is not the
> solution. readFile is defined thus:
>
> readFile name = openFile name ReadMode >>= hGetContents
>
> and the original code was this:
>
> load fn = do handle <- IO.openFile fn IO.ReadMode
> contents <- IO.hGetContents handle
> IO.hClose handle
> return $ XP.xmlParse fn contents
>
> Sure, you can replace the openFile/hGetContents pair by readFile, but the
> real problem is the presence of the hClose. Removing that will solve your
> problem (but note that you now have no control over when the file is
> actually closed).
Can I just leave it hanging and rely on the garbage collector to close
it in the fullness of time?
Because of laziness, I believe there's no point in my writing the
following:
> load fn = do handle <- IO.openFile fn IO.ReadMode
> contents <- IO.hGetContents handle
> let xml = XP.xmlParse fn contents
> IO.hClose handle
> return xml
Is that correct?
Norman
More information about the Haskell
mailing list