Simen kjaeraas:
> Soz, I read a bit too fast. It /is/ lazy, though perhaps not the way
> you meant. This returns the right thing, but does not *read* lazily
> from the AA, a task I am unsure how, if at all possible, one should
> perform.
In the task was written:
> If possible read things lazily from the associative array.
D AAs have byKey and byValue that return a lazy iterator. So if we add a
"byItem" or "byPair" or "byKeyValue" you are able to read pairs lazily :-)
> import std.algorithm;
> import std.range;
>
> void main( ) {
> auto aa = [1:"a", 2:"b", 3:"c"];
> auto result = map!"tuple(a[0]*10,a[1]~a[1])"( zip( aa.keys, aa.values
> ) );
> }
This is a nice solution I didn't think about, thank you :-) It doesn't read
data lazily from the AA as requested, but it's not bad looking.
Bye and thank you,
bearophile