Lazy evaluation

Timon Gehr timon.gehr at gmx.ch
Tue Nov 22 15:19:11 PST 2011


On 11/23/2011 12:06 AM, Peter Alexander wrote:
> On 22/11/11 10:00 PM, Manu wrote:
>> So, I've been thinking about this const/lazy evaluation problem again.
>>
>> I think most of the complaints about D's const is due to the use of lazy
>> evaluation for optimisation. I started wondering if there was room for a
>> 'lazy' keyword.
>
> There already is one :-)
>
> http://d-programming-language.org/lazy-evaluation.html
>

That is not lazy evaluation. It is call by name.

>
>> Perhaps if you declared some function as lazy, then the compiler would
>> be expected to cache the return value
>
> How does it cache it?
>
> i.e.
>
> - What data structure does it use?
> - Is there a size limit, or does it just keep adding into the cache
> until you run out of memory?
> - What allocator does it use?
> - If there is a size limit, what is the eviction policy?
> - and what is the size limit?
> - How do I manually flag the cache as dirty if I want to clear it?
>
> There is no automatic way to do caching. Every single application of
> caching has its own needs and you need control over that. You can't just
> stick it all in a hash table and be done with it.



More information about the Digitalmars-d mailing list