Matrix-exponentiation operator: Difference between revisions
→{{header|Perl 6}}: Calc $size in one line, use 2-arg .fmt, de-tab, and use Out template.
(→{{header|Perl 6}}: Calc $size in one line, use 2-arg .fmt, de-tab, and use Out template.) |
|||
Line 1,709:
$m->identity ** 1_000_000_000_000;</lang>
=={{header|Perl 6}}==
{{works with|rakudo|2015
<lang perl6>subset SqMat of Array where { .elems == all(.[]».elems) }
multi infix:<*>(SqMat $a, SqMat $b) {[
for ^$a -> $r {[
Line 1,719:
]}
]}
multi infix:<**> (SqMat $m, Int $n is copy where { $_ >= 0 }) {
my $tmp = $m;
my $out = [for ^$m -> $i { [ for ^$m -> $j { +($i == $j) } ] } ];
loop {
}
$out;
}
multi show (SqMat $m) {
my $size =
▲ .put for @$m».fmt("%{$size}s");
}
my @m = [1, 2, 0],
for 0 .. 10 -> $order {
say "### Order $order";
show @m ** $order;
}</lang>
{{out}}
<pre>### Order 0
1 0 0
|