S. Alexander Jacobson <[EMAIL PROTECTED]> wrote (sorry, i do not remember, to which of the Haskell lists) > Wow! If Ralf is right, then foldl in a lazy language always generates > a space leak and should be avoided in favor of strictFoldl. > ... There were other letters on foldl(Strict) and related things. Concerning the un-needed laziness, we, probably, have to think about its cost bound. The evaluation cost is nR + C*nA, where nR is the number of "reduction steps", nA number of the cell allocations (for new data). C a constant depending on implementation. - something like Time + Space. And in the above example of foldl (+) 0 [1..b] the ratio of the lazy evaluation cost to the strictness-optimised one is (b + C*b)/b = 1+C (1) - a constant. That is the strictness-optimised program costs near the same as the naive. If a naive program overflows memory space M, then the strictness- optimised one will take at least as much time as C*M. I suspect, (1) holds in general. How do you think? ------------------ Sergey Mechveliani [EMAIL PROTECTED]