1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
mul: fun(n, m) fiber {
    n.times.map(|i| i+1).each{|i|
        m.times.map(|j| j+1).each{|j|
            yield i, j, i * j;
        }
    }
}

formatter: %f[%d * %d = %2d];
mul(9, 9) {|i,j,s|
    formatter(i, j, s).p;
}