On 10/3/22 13:48, Andrey Zherikov wrote:
a "rotated view".
Without indexes: import std.range : empty; auto rotatedView(R)(R range) in (!range.empty) { import std.range : chain, front, only, popFront; const fr = range.front; range.popFront(); return chain(range, only(fr)); } void main() { import std.algorithm : equal; int[] arr1 = [ 1, 2, 3, 4 ]; assert(arr1.rotatedView.equal([ 2, 3, 4, 1 ])); // Now this is getting a little expensive! :) assert(arr1 .rotatedView .rotatedView .equal([ 3, 4, 1, 2 ])); } Ali