program matrix_transposition; mat := [[1,2,3,4], [5,6,7,8], [9,10,11,12]]; print(mat); print(' -> '); print(transpose(mat)); proc transpose(m); return [[m(y)(x) : y in [1..#m]] : x in [1..#m(1)]]; end proc; end program;