The OpenD Programming Language

RetroRange

Reverses order of iteration for all dimensions.

Members

Variables

_source
Range _source;

Return Value

Slice/range with reversed order of iteration for all dimensions.

Examples

auto slice = iota(2, 3);
static immutable reversed = [[5, 4, 3], [2, 1, 0]];
assert(slice.retro == reversed);
assert(slice.canonical.retro == reversed);
assert(slice.universal.retro == reversed);

static assert(is(typeof(slice.retro.retro) == typeof(slice)));
static assert(is(typeof(slice.canonical.retro.retro) == typeof(slice.canonical)));
static assert(is(typeof(slice.universal.retro) == typeof(slice.universal)));

Ranges

import mir.algorithm.iteration: equal;
import std.range: std_iota = iota;

assert(std_iota(4).retro.equal(iota(4).retro));
static assert(is(typeof(std_iota(4).retro.retro) == typeof(std_iota(4))));

See Also

Meta