#!/usr/bin/ruby

#
## https://rosettacode.org/wiki/Matrix_multiplication
#

func matrix_multi(a, b) {
    var m = [[]];
    a.range.each { |r|
        b.first.range.each { |c|
            b.range.each { |i|
                m[r][c] := 0 += (a[r][i] * b[i][c]);
            }
        }
    };
    return m;
};
 
var a = [
          [1, 2],
          [3, 4],
          [5, 6],
          [7, 8]
        ];
 
var b = [
          [1, 2, 3],
          [4, 5, 6]
        ];
 
matrix_multi(a, b).each {|line|
    say line.map{|i|'%3d'.sprintf(i)}.join(', ');
};