⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝⍝
⍝   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