Transpose an arbitrarily sized rectangular Matrix.




func transpose(matrix) {
    matrix[0].range.map{|i| matrix.map{_[i]}};
};
 
var m = [
  [1,  1,   1,   1],
  [2,  4,   8,  16],
  [3,  9,  27,  81],
  [4, 16,  64, 256],
  [5, 25, 125, 625],
];
 
transpose(m).each { |row|
    "%5d" * row.len -> printlnf(row...);
}