Alternate signs in a range
Stanislav Blinov
stanislav.blinov at gmail.com
Sun Jan 26 05:21:23 PST 2014
>> But it's easy to avoid the multiplication and replace it with
>> a conditional neg.
>>
>> Bye,
>> bearophile
>
> How would you do this ?
>
> map!(a => (a.index & 1) ? a : -a)([1, 2]) ? (index field isn't
> available of course)
import std.range;
import std.algorithm;
import std.stdio;
void main() {
auto myRange = iota(0,10);
auto index = sequence!((a,n) => a[0]+n)(1);
auto result = myRange.zip(index).map!(a => a[1] & 1 ? a[0] :
-a[0]);
result.writeln;
}
More information about the Digitalmars-d-learn
mailing list