Closures/Value capture
var f = (
10.of {|i| func(j){i * j} }
)
9.times { |j|
say f[j](j)
}
Output:
0
1
4
9
16
25
36
49
64
Starting from i=1:
var f = (1..10).map { |i|
func(j){i * j}
}
for j (1..9) {
say f[j-1](j)
}
Output:
1
4
9
16
25
36
49
64
81