Tropical algebra overloading: Difference between revisions

→‎{{header|RPL}: add header + format
m (Added language identifier.)
(→‎{{header|RPL}: add header + format)
Line 1,011:
</pre>
 
=={{header|REXX}}==
RPL does not support operator overloading so we need to use functions instead. As all stack-driven languages, RPL requires the user to deal with operator precedence.
MAXR EVAL ''''<span style="color:green>Inf'''</span>' STO
≪ 1 3 '''START''' ROT EVAL '''NEXT'''
'''IF''' DUP ABS '''<span style="color:green>Inf'''</span> == '''THEN''' SIGN ''''<span style="color:green>Inf'''</span>' * '''END'''
≫ ‘'''<span style="color:blue>TropOp'''</span>’ STO
≪ ≪ MAX ≫ '''<span style="color:blue>TropOp'''</span> ≫ ‘'''<span style="color:blue>TPLUS'''</span>’ STO
≪ ≪ + ≫ '''<span style="color:blue>TropOp'''</span> ≫ ‘'''<span style="color:blue>TMULT'''</span>’ STO
≪ ≪ * ≫ '''<span style="color:blue>TropOp'''</span> ≫ ‘'''<span style="color:blue>TPOWR'''</span>’ STO
 
2 -2 '''<span style="color:blue>TMULT'''</span>
-0.001 '-'''<span style="color:green>Inf''''</span> <span '''style="color:blue>TPLUS'''</span>
0 -<span style="color:green>Inf</span> <span style="color:blue>TMULT</span>
0 '-'''Inf'''' '''TMULT'''
1.5 -1 '''<span style="color:blue>TPLUS'''</span>
0.5 0 '''<span style="color:blue>TMULT'''</span>
5 7 <span style="color:blue>TPOWR</span>
8 7 '''TPLUS''' 5 '''TMULT'''
8 7 <span style="color:blue>TPLUS</span> 5 <span style="color:blue>TMULT</span>
5 8 '''TMULT''' 5 7 '''TMULT TPLUS'''
5 8 <span style="color:blue>TMULT</span> 5 7 <span style="color:blue>TMULT</span> <span style="color:blue>TPLUS</span>
 
{{out}}
<pre>
78: 0
67: -0.001
56: '-Inf'
45: 1.5
34: -0.5
3: 35
2: 13
1: 13
1,150

edits