
G'day all.
On Tue, 3 May 2005 21:04:46 -0700
Andrew Pimlott
The advantage of lazy evaluation is that evaluation order becomes one less thing you have to think about.
Quoting Erik de Castro Lopo
Yes, but only if your functions are pure.
Right.
The disadvantage of lazy evaluation is that evaluation order becomes one more thing you have to think about.
Yes, but only if your functions are impure.
Wrong. An unevaluated thunk can, in general, be much larger than what the thunk evaluates to. (Think of "length" of a large list, for example.) If such a thunk is unevaluated but not garbage for a considerable time, then you have a space leak. So you do need to think about evaluation order. One good rule of thumb is: On large data structures, try to have a single consumer only. Cheers, Andrew Bromage