
12 May
2009
12 May
'09
2:25 p.m.
Roman Leshchinskiy wrote:
On 12/05/2009, at 14:45, Reiner Pope wrote:
The Stream datatype seems to be much better suited to representing loops than the list datatype is. So, instead of programming with the lists, why don't we just use the Stream datatype directly?
This is more or less the conclusion I came to myself the other day when I sat down and tried to implement stream fusion myself (just for giggles).
I think the main reason is that streams don't store data and therefore don't support sharing. That is, in
let xs = map f ys in (sum xs, product xs)
the elements of xs will be computed once if it is a list but twice if it is a stream.
...and I hadn't thought of this part! ;-)