[Haskell-cafe] Stream-fusion without the lists

Andrew Coppin andrewcoppin at btinternet.com
Tue May 12 14:25:09 EDT 2009


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! ;-)



More information about the Haskell-Cafe mailing list