best way to memoize a range?

Jakob Ovrum via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Sep 11 06:12:10 PDT 2015


On Friday, 11 September 2015 at 13:09:33 UTC, Laeeth Isharc wrote:
> obviously it's trivial to do with a little aa cache.  and I 
> know I can memoize a function, and turn the memoized version 
> into an infinite range.  but suppose I have a lazy function 
> that returns a finite range, and its expensive to calculate.
>
> can I use Phobos to produce a memoized range?  So it will 
> calculate on access to an element if it needs to, but will 
> return the cached value if it has been calculated before.

Is your range random access?

If not, `cache` should do the trick.

[1] http://dlang.org/phobos/std_algorithm_iteration.html#cache



More information about the Digitalmars-d-learn mailing list