[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