[Haskell-cafe] IO and lazyness.
Brandon S. Allbery KF8NH
allbery at ece.cmu.edu
Tue Mar 6 16:25:45 EST 2007
On Mar 6, 2007, at 16:22 , D.V. wrote:
> On 3/6/07, mm <schneegloeckchen at gmx.li> wrote:
>> I cannot help you with your question more than pointing you to
>> where Simon Marlow explains how to avoid "IO.bracket".
> I'm using Control.Exception's bracket.
> Also, following Jeremy's advice, I replaced the last line of rechf2
> with return $! rech r $ lines f and indeed it works.
> I don't understand why it doesn't without the !
> The documentation for hGetContents says the items are read on demand.
> the function rech needs the strings so they should be read on demand.
> This confuses me :(
Because rech is lazy so it only reads them when something demands it
do so (e.g. IO, or $! which forces strict evaluation).
brandon s. allbery [linux,solaris,freebsd,perl] allbery at kf8nh.com
system administrator [openafs,heimdal,too many hats] allbery at ece.cmu.edu
electrical and computer engineering, carnegie mellon university KF8NH
More information about the Haskell-Cafe