lazy thoughts

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Mon Jan 12 11:36:32 PST 2009


Brian Palmer wrote:
> Andrei Alexandrescu Wrote:
> 
>> (I originally emailed this to Walter and a couple others, but I thought 
>> it might be better to gather insights from the community.)
>>
>> I'm gearing up for changing std.algorithm, and I am thinking of making 
>> the major change of favoring lazy evaluation throughout. (snip)
> 
> I am behind this change 100%. Awesome that range support enabled this functionality. I haven't used std.algorithm in a few months so I apologize if I'm out of date here, but you might want to start thinking about stream fusion too -- "fusing" multiple std.algorithm calls (map, fold, etc.) together so that you can pipeline computations and only ever allocate to get the final result.
> 
> Then with range support in streams, we could read in a stream, apply multiple transformations via std.algorithm, and then write to another stream all without extra allocation for intermediate results!

Good point. Yes, the overhaul of std.algorithm in wake of streams will 
be accompanied by an overhaul of std.stdio (work on files as streams), 
std.random (random generators as streams), std.format (output formatted 
objects straight to streams) and probably a couple of others.

Andrei



More information about the Digitalmars-d mailing list