Anonymous user
Ethiopian multiplication: Difference between revisions
→{{header|Perl 6}}: add a more idiomatic version
(Updated D code) |
(→{{header|Perl 6}}: add a more idiomatic version) |
||
Line 1,898:
}
return $r;
}</lang>
More succinctly using implicit typing, primed lambdas, and an infinite loop:
<lang perl6>my &halve = * div= 2;
my &double = * *= 2;
my &even = * %% 2;
sub ethiopicmult {
my ($a,$b) = @_;
my $r;
loop {
even $a or $r += $b;
halve $a or return $r;
double $b;
}
}</lang>
|