
On Tue, Sep 11, 2012 at 11:57 AM, Henning Thielemann
On Tue, 11 Sep 2012, Evan Laforge wrote:
On Tue, Sep 11, 2012 at 11:43 AM, Henning Thielemann
wrote: I don't know whether this "scanl'" is of much use. "foldl'" is required because we can access its accumulator only after "foldl'" finished. But in "scanl'" you can and usually should access the interim accumulator values that are contained in the result list.
I use it relatively frequently, e.g. 'intervals = scanl (+) 0 (cycle [2, 1, 2, 2, 1, 2, 2])'
And what do you do with the elements of 'intervals'? I guess you consume them and then you force their evaluation this way.
Yes, you're right, I don't rely on laziness in the result. And even if I did, in the case of (+) it probably isn't worth it anyway. Sorry, I missed that the key point was whether or not the interim values are used.