emit: generalizes map, filter, joiner [proposal + implementation]

Tamas via Digitalmars-d digitalmars-d at puremagic.com
Wed Mar 23 10:43:07 PDT 2016


On Wednesday, 23 March 2016 at 17:29:55 UTC, Nick Treleaven wrote:
> On Monday, 21 March 2016 at 23:09:27 UTC, Tamas wrote:
>> On Monday, 21 March 2016 at 11:48:52 UTC, Seb wrote:
>>> Could you try to point out whats wrong with map & filter?
>> It's hard to do stuff like this:
>>
>> assert(9.iota.emit!(int,(put,a){if(a%2) put(a*a); if(a%3==0) 
>> put(a);}).equal([1,9,3,25,6,49]));
>
> Seems doable:
> mapFilter!((a){if(a%2) return some(a*a); if(a%3==0) return 
> some(a); return none;})

This one emits only 1 element when a==3. (BTW what is `mapFilter` 
and `some`?)


More information about the Digitalmars-d mailing list