diff --git a/src/Perl6/Grammar.pm b/src/Perl6/Grammar.pm index 8ccdd0ae7a3..9be494818bf 100644 --- a/src/Perl6/Grammar.pm +++ b/src/Perl6/Grammar.pm @@ -1821,6 +1821,8 @@ token prefix:sym<|> { } token infix:sym<*> { } token infix:sym { } token infix:sym
{ >> } +token infix:sym { >> } +token infix:sym { >> } token infix:sym<%> { } token infix:sym { >> } token infix:sym<%%> { ')> } diff --git a/src/core/Int.pm b/src/core/Int.pm index 93b689471d2..fdf1983f5fe 100644 --- a/src/core/Int.pm +++ b/src/core/Int.pm @@ -104,6 +104,14 @@ our multi sub infix:
(Int $a, Int $b) { upgrade_to_num_if_needed(pir::fdiv__NNN($a, $b)); } +our multi sub infix:(Int $a, Int $b) { + pir::gcd__Iii($a, $b) +} + +our multi sub infix:(Int $a, Int $b) { + pir::lcm__Iii($a, $b) +} + our multi sub infix:<%>(Int $a, Int $b) { upgrade_to_num_if_needed(pir::mod__NNN($a, $b)) } diff --git a/src/core/Rat.pm b/src/core/Rat.pm index d4da7ca6ea0..fbf718546e0 100644 --- a/src/core/Rat.pm +++ b/src/core/Rat.pm @@ -13,7 +13,7 @@ class Rat is Cool does Real { $numerator = -$numerator; $denominator = -$denominator; } - my $gcd = $numerator.gcd($denominator); + my $gcd = $numerator gcd $denominator; $numerator = $numerator div $gcd; $denominator = $denominator div $gcd; self.bless(*, :numerator($numerator), :denominator($denominator)); @@ -51,7 +51,7 @@ multi sub prefix:<->(Rat $a) { } multi sub infix:<+>(Rat $a, Rat $b) { - my $gcd = $a.denominator.gcd($b.denominator); + my $gcd = $a.denominator gcd $b.denominator; ($a.numerator * ($b.denominator div $gcd) + $b.numerator * ($a.denominator div $gcd)) / (($a.denominator div $gcd) * $b.denominator); } @@ -65,7 +65,7 @@ multi sub infix:<+>(Int $a, Rat $b) { } multi sub infix:<->(Rat $a, Rat $b) { - my $gcd = $a.denominator.gcd($b.denominator); + my $gcd = $a.denominator gcd $b.denominator; ($a.numerator * ($b.denominator div $gcd) - $b.numerator * ($a.denominator div $gcd)) / (($a.denominator div $gcd) * $b.denominator); }