rotate package:harpie

Rotate an array along a dimension.
>>> pretty $ rotate 1 2 a
[[[8,9,10,11],
[0,1,2,3],
[4,5,6,7]],
[[20,21,22,23],
[12,13,14,15],
[16,17,18,19]]]
Rotate an array along a dimension.
>>> pretty $ rotate (Dim @1) 2 a
[[[8,9,10,11],
[0,1,2,3],
[4,5,6,7]],
[[20,21,22,23],
[12,13,14,15],
[16,17,18,19]]]
rotate a list
>>> rotate 1 [0..3]
[1,2,3,0]

>>> rotate (-1) [0..3]
[3,0,1,2]
Rotate an array by/along dimensions & offsets.
>>> pretty $ rotates [1] [2] a
[[[8,9,10,11],
[0,1,2,3],
[4,5,6,7]],
[[20,21,22,23],
[12,13,14,15],
[16,17,18,19]]]
Rotate an array by/along dimensions & offsets.
>>> pretty $ rotates (Dims @'[1]) [2] a
[[[8,9,10,11],
[0,1,2,3],
[4,5,6,7]],
[[20,21,22,23],
[12,13,14,15],
[16,17,18,19]]]
rotate an index along a specific dimension.
>>> rotateIndex 0 1 [2,3,4] [0,1,2]
[1,1,2]
rotate an index along specific dimensions.
>>> rotatesIndex [0] [1] [2,3,4] [0,1,2]
[1,1,2]