Tropical algebra overloading: Difference between revisions

Content added Content deleted
m (→‎{{header|Raku}}: test relative precedence of ↑ and ⊕)
m (→‎{{header|Raku}}: add constraint)
Line 604: Line 604:
No need to overload, define our own operators with whatever precedence level we want. Here we're setting precedence equivalent to existing operators.
No need to overload, define our own operators with whatever precedence level we want. Here we're setting precedence equivalent to existing operators.


<lang perl6>sub infix:<⊕> (Real $a, Real $b) is equiv(&[+]) { $a max $b }
<lang perl6>sub infix:<⊕> (Real $a, Real $b) is equiv(&[+]) { $a max $b }
sub infix:<⊗> (Real $a, Real $b) is equiv(&[×]) { $a + $b }
sub infix:<⊗> (Real $a, Real $b) is equiv(&[×]) { $a + $b }
sub infix:<↑> (Real $a, Int $b) is equiv(&[**]) { [⊗] $a xx $b }
sub infix:<↑> (Real $a, Int $b where * ≥ 0) is equiv(&[**]) { [⊗] $a xx $b }
use Test;
use Test;