23 lines
478 B
Plaintext
23 lines
478 B
Plaintext
class Array {
|
|
method ** (Number n { .>= 0 }) {
|
|
var tmp = self
|
|
var out = self.len.of {|i| self.len.of {|j| i == j ? 1 : 0 }}
|
|
loop {
|
|
out = (out `mmul` tmp) if n.is_odd
|
|
n >>= 1 || break
|
|
tmp = (tmp `mmul` tmp)
|
|
}
|
|
return out
|
|
}
|
|
}
|
|
|
|
var m = [[1, 2, 0],
|
|
[0, 3, 1],
|
|
[1, 0, 0]]
|
|
|
|
for order in (0..5) {
|
|
say "### Order #{order}"
|
|
var t = (m ** order)
|
|
say (' ', t.join("\n "))
|
|
}
|