On 07/29/2012 04:48 PM, Timon Gehr wrote:
Ideally it would look like this:

struct Map(alias fun, R){
     R range;
     mixin YieldInputRange!q{
         for(; !range.empty; range.popFront())
             yield fun(range.front);
     }
     static if(is(typeof(range.save))) @property auto save(){
         return Map!(fun, R)(range.save);
     }
     ...
}

Or as a built-in:

struct Map(alias fun, R){
     R range;
     yield {
         for(; !range.empty; range.popFront())
             yield fun(x);
               yield fun(range.front); // oops
     }
     static if(is(typeof(range.save))) @property auto save(){
         return Map!(fun, R)(range.save);
     }
     ...
}

Reply via email to