At least I believe the result is incorrect. Let me show my observations. All tests done with ⎕IO←0
I will show 4 invocations of transpose, with the first three being correct but the fourth one returning the wrong result. First, let's establish the identity operation for a transpose: * ⍴ 0 1 2 3 4 ⍉ 3 4 5 6 7 ⍴ ⍳100* ┏→━━━━━━━━┓ ┃3 4 5 6 7┃ ┗━━━━━━━━━┛ As we can see, the shape of the result is identical to the input. Now, let's try reversing the axes: * ⍴ 4 3 2 1 0 ⍉ 3 4 5 6 7 ⍴ ⍳100* ┏→━━━━━━━━┓ ┃7 6 5 4 3┃ ┗━━━━━━━━━┛ Good, the shape has reversed sizes. That's also expected. Now, another slightly more complex version: * ⍴ 1 0 4 3 2 ⍉ 3 4 5 6 7 ⍴ ⍳100* ┏→━━━━━━━━┓ ┃4 3 7 6 5┃ ┗━━━━━━━━━┛ This result is also correct. Now, for the problematic version: * ⍴ 2 4 1 0 3 ⍉ 3 4 5 6 7 ⍴ ⍳100* ┏→━━━━━━━━┓ ┃6 5 3 7 4┃ ┗━━━━━━━━━┛ As you can see, the numbers are all over the place. For some reason, it seems to have interpreted the left arguments to transpose as if they were: 3 2 0 4 1 Regards, Elias