Comment #0 by andrej.mitrovich — 2010-09-03T08:50:34Z
From: http://www.digitalmars.com/d/2.0/phobos/std_range.html#Radial
int[] a = [ 1, 2, 3, 4, 5 ];
assert(equal(radial(a) == [ 3, 2, 4, 1, 5 ][]));
a = [ 1, 2, 3, 4 ];
assert(equal(radial(a) == [ 2, 3, 1, 4 ][]));
The equality Op shouldn't be there but the first array literal is wrong as well. This should be:
int[] a = [ 1, 2, 3, 4, 5 ];
assert(equal(radial(a), [ 3, 4, 2, 5, 1 ]));
a = [ 1, 2, 3, 4 ];
assert(equal(radial(a), [ 2, 3, 1, 4 ]));
Comment #1 by andrej.mitrovich — 2010-09-03T08:52:42Z
The docs also state:
Iterates a random-access range starting from a given point and progressively extending left and right from that point. If no initial point is given, iteration starts from the middle of the range. Iteration spans the entire range.
However it iterates Right first and then Left, not the other way around. So maybe change the sentence to: "Iterates a random-access range starting from a given point and progressively extending right and left from that point."