Lazy caching map()?

Graham Fawcett fawcett at uwindsor.ca
Mon Mar 19 21:25:09 UTC 2018


On Monday, 19 March 2018 at 16:47:16 UTC, Graham Fawcett wrote:
> On Friday, 9 March 2018 at 19:41:46 UTC, H. S. Teoh wrote:
>> Today I found myself needing a lazy, caching version of map() 
>> on an array.  More precisely, given an array `T[] src` of 
>> source data and a function func(T) that's pretty expensive to 
>> compute, return an object `result` such that:
>>
>> [...]
>
> Map the sources to std.parallelism.Task instances, and 
> yieldForce() the instances when you need the results?

On second thought, that won't work. AFIAK there's no way to take 
an unscheduled task and force it to execute on the current thread 
immediately and yield the result. But with such an operation, you 
could have a thread-local future/promise type that would meet 
your needs.

Graham



More information about the Digitalmars-d mailing list