On Tuesday 15 February 2011 23:29:39, Andrew Coppin wrote: > On 15/02/2011 08:35 PM, Daniel Fischer wrote: > > The result is that the list > > > > [1 .. 10*1024*1024*k] > > > > from the penultimate line of random_file is shared between the four > > iterations of the inner loop in file_batch (for k = 1 .. 4). Oops. > > Ouch! That's gotta sting in the morning... o_O
I think it has already stung, or we wouldn't have this thread, would we? > > I suppose what we could really do with is a combinator that runs a > monadic action N times, without actually constructing a list N elements > long in order to do so. True enough. But I guess nobody¹ bothered yet because there are so many possible designs and most of them are trivial to implement in a line or two (so the pain of writing them repeatedly isn't bad enough). ¹ Not quite true, there's the monad-loops package on hackage which provides a handful of loops. But not the trivial nTimesDo. > Then it becomes blatently obvious that there's > nothing to share, and the problem goes away. > > They say that in Haskell, "a list *is* a loop". Apparently, not always. No, not always. Some lists are just, you know, lists. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe