⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
⍝ B r a i n f u c k
+:∘/∘; 0:∘/∘; ∘/∘ -> ∘/+:∘;1:∘/∘;∘/∘
-:∘/∘; 1:∘/∘; ∘/∘ -> ∘/-:∘;0:∘/∘;∘/∘
>:∘/∘; 0:∘/∘; ∘/∘ -> ∘/>:∘;∘/0:∘;∘/∘
<:∘/∘; ∘/0:∘; ∘/∘ -> ∘/<:∘;0:∘/∘;∘/∘
.:∘/∘; 0:∘/∘; ∘/∘ -> ∘/.:∘;0:∘/∘;∘/0:∘
,:∘/∘; 1:∘/∘; 0:∘/∘ -> ∘/,:∘;0:∘/∘;∘/∘
[:+:]:∘/∘; 0:∘/∘; ∘/∘ -> ∘/]:+:[:∘;0:∘/∘;∘/∘
[:-:]:∘/∘; 5:∘/∘; ∘/∘ -> ∘/]:-:[:∘;0:∘/∘;∘/∘
,:>:,:<:[:-:>:+:<:]:>:.:∘/∘; 0:0:∘/∘; 2:3:∘/∘ -> ∘/.:>:]:<:+:>:-:[:<:,:>:,:∘;5:∘/0:∘;∘/5:∘
,:>:,:<:[:>:[:>:+:>:+:<:<:-:]:>:>:[:<:<:+:>:>:-:]:<:<:<:-:]:>:>:.:∘/∘; 0:0:0:0:∘/∘; 2:3:∘/∘ -> ∘/.:>:>:]:-:<:<:<:]:-:>:>:+:<:<:[:>:>:]:-:<:<:+:>:+:>:[:>:[:<:,:>:,:∘;6:0:∘/3:0:∘;∘/6:∘
>:[:>:]:<:[:-:[:<:[:<:]:]:-:<:]:>:+:∘/∘; 1:1:2:0:∘/∘; ∘/∘ -> <:]:]:-:<:]:>:+:∘/[:<:[:-:[:<:]:>:[:>:∘;1:1:1:0:∘/∘;∘/∘
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
⍝ B a l a n c e d T e r n a r y A r i t h m e t i c
1.1+1.1 -> 1.0.¯1
¯1.¯1+¯1.¯1 -> ¯1.0.1
1.1-1.1 -> 0
-1.1.1 -> ¯1.¯1.¯1
1.1.1*1.1.1 -> 1.¯1.0.1.¯1.1
¯1.1∧1.0 -> ¯1.0.1
1.1∧1.0.¯1 -> 1.0.1.0.0.0.¯1.0.1.¯1.1
1.0. 1/1.¯1 -> 1.¯1.¯1
¯1.0.¯1/1.¯1 -> ¯1.1.1
1.1.1%1.0.¯1 -> 1.¯1.¯1
0/0 -> 1
1/0 -> ?
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
⍝ M a t h e m a t i c a l d e f i n i t i o n s
1+x+2 -> x+3
-----x -> -x
1+x+y+z+x+y+z+2 -> x+y+z+x+y+z+3
2*x*y*z*x*y*z*3 -> 6*(x*y*z*x*y*z)
x∧x+y*x∧x -> (y+1)*x∧x
x+x+x+x*x*x -> 3*x+x∧3
2*x + x*3 -> 5*x
x∧2 * x∧3 -> x∧5
(x∧y)∧z -> x∧(y*z)
(x+3-x)+(x*4/x) -> 7
x+y+z, x=y+y, y=z+z, z=3 -> 21
(2∧x+x∧2)∆x -> 0.69315*2∧x+2*x
(ln(x∧x))∆x, x=2 -> 1+⍟2
(4*x∧3 + 3*x∧2 + 2*x∧1 + 1*x∧0)∆x -> 12*x∧2+6*x+2
sin(x)∧2 + cos(x)∧2, x=42 -> 1
(sin(x)∧2 + cos(x)∧2)∆x -> 0
(ln x)∆x∆x -> -1/x∧2
(ln x)∆x∆x∆x -> 2/x∧3
(ln x)∆x∆x∆x∆x∆x, x=1 -> 24
(ln x)∆x∆x∆x∆x∆x∆x -> -120/x∧6
ln exp ln exp 99 -> 99
(x/exp(x))∆x -> (1-x)/exp(x)
x+-3 -> x-3
x/y∧-2 -> x*y∧2
2∆3 -> 2∆3
a+(b+(c+d)) -> a+b+c+d
a*(b*(c*d)) -> a*b*c*d
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
⍝ R o m a n N u m e r a l s See →notes.roman←
I.I.I.I -> I.V
I.I.I.I.I -> V
I.I.I.I.I.I -> V.I
I+I+I+I+I+I -> V.I
I.V + I -> V
V.I.I + V.I.I -> X.I.V
I.X + I.X -> X.V.I.I.I
X.L.I.X + X.L.I.X -> X.C.V.I.I.I
M+M+M+M -> nimius
X.X - I -> X.I.X
V.I - V -> I
X-I.I.I.I.I.I.I.I.I -> I
X.X - I.I -> X.V.I.I.I
X.I.V - V.I -> V.I.I.I
C.I - V -> X.C.V.I
M.M - I -> M.C.M.X.C.I.X
X-V-V -> nulla
X-V-V-V -> absurdus
X.I.V × X.I.V -> C.X.C.V.I
X×X×X -> M
X×X×X×X -> nimius
I.I × nulla -> nulla
V ÷ I -> V
C ÷ X -> X
X.I ÷ I.I -> V
C.X.L.V ÷ V.I -> X.X.I.V
V ÷ X -> nulla
X.I.I ÷ V -> I.I
C.X.L.V % V.I -> I
X % V -> nulla
V % X -> V
X.I.I % V -> I.I
⍴ 1.9.9.9 -> M.C.M.X.C.I.X
⍴ 3.9.9.9 -> M.M.M.C.M.X.C.I.X
⍴ 4.0.0.0 -> nimius
⍺ M.C.M.X.C.I.X -> 1.9.9.9
⍺ M.M.M.C.M.X.C.I.X -> 3.9.9.9
⍺⍴ 4.9 -> 4.9
⍴⍺ C.M.X.C.I.X -> C.M.X.C.I.X
⍴⍺ C.D.X.L.I.V -> C.D.X.L.I.V
M + I.X × C.X.I -> M.C.M.X.C.I.X
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
⍝ S i g n e d B i n a r y A r i t h m e t i c
1.1+1.1 -> 1.1.0
-1.1-1.1 -> -1.1.0
1.1+-1.1.1 -> -1.0.0
0-1-1-1-1 -> -1.0.0
-1.1*-1.1 -> 1.0.0.1
-1.1∧ 1.1 -> -1.1.0.1.1
1.1∧-1 -> 1.1∧-1
1.1.1/1.1 -> 1.0
1.1.1/-1.1 -> -1.0
-1.1.1/1.1 -> -1.0
-1.1.1/-1.1 -> 1.0
1.1.1%1.1 -> 1
1.1.1%-1.1 -> 1
-1.1.1%1.1 -> -1
-1.1.1%-1.1 -> -1
1.1.1.1.1.0.1.0.0.0/1 -> 1.1.1.1.1.0.1.0.0.0
1.1.1.1.1.1.1.1.1.1/1.1.1.1.1 -> 1.0.0.0.0.1
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
⍝ J a p a n e s e A b a c u s See →notes.soroban←
⍵ ⍺ 1.2.3.4.5.6.7.8.9 -> 1.2.3.4.5.6.7.8.9
⍺ ⍵ 0/1.1/0.1/2.1/3 -> 0/1.1/0.1/2.1/3
0/0.0/0 -> 0/0
⍵ 0/0+7 -> 7
⍵ 0/0+7+7 -> 1.4
⍵ 0/0+7+7+7 -> 2.1
⍵ 0/0+7+7+7+7 -> 2.8
⍵ 0/0+7+7+7+7+7 -> 3.5
⍵ 0/0+1+2+3+4+5+6+7+8+9 -> 4.5
⍵ 0/0+9+8+7+6+5+4+3+2+1 -> 4.5
⍵ 0/0 + 1.2 -> 1.2
⍵ 0/0 + 1.2 + 3.4 + 5.6 -> 1.0.2
⍵ 0/0 + 1.2.3.4.5.6.7.8.9 + 9.8.7.6.5.4.3.2.1 -> 1.1.1.1.1.1.1.1.1.0
⍵ 0/3.1/0-7 -> 2.8
⍵ 0/3.1/0-7-7 -> 2.1
⍵ 0/3.1/0-7-7-7 -> 1.4
⍵ 0/3.1/0-7-7-7-7 -> 7
⍵ 0/3.1/0-7-7-7-7-7 -> 0
0/1.0/0.0/2 -1.2-3.4-5.6 -> 0/0
⍵ (⍺ 1.1.1.1.1.1.1.1.1.0) - 1.2.3.4.5.6.7.8.9 -> 9.8.7.6.5.4.3.2.1
⍵ (⍺ 1.1.1.1.1.1.1.1.1.0) - 9.8.7.6.5.4.3.2.1 -> 1.2.3.4.5.6.7.8.9
0/0 - 1 -> (0-1)/4
1/1 - 2.3 -> 1/1-2.3
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
⍝ S t a n d a r d E x c e l - s t y l e d e f i n i t i o n s
round(2/3, 2) -> 0.67
floor(123.456, 0.01) -> 123.45
ceiling(123.456, 0.1) -> 123.5
sum(min(1,2,3),max(4,5,6),7,8,9) -> 31
mod(10,7) -> 3
-2 -> ¯2
2+-2 -> 0
2∧2∧3 -> 256
6/3*2 -> 4
6-3+2 -> 5
(6/(3*2)) ∧ (6-(3+2)) -> 1
2 3 !! missing operator
+3 !! missing operand
3+ !! missing operand
() !! null expression
1/0 !! bad operand
2(3) !! missing operator
(2)3 !! missing operator
3) !! unexpected )
((3 !! missing ))
⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
⍝ Native Tasmanian counting.
one + one -> two
one + one + one -> plenty
plenty + plenty -> plenty
two two !! missing operator
plenty + !! missing operand