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

⍝ Macros:

round(num sig → mul←÷10*sig ⋄ mul×⌊0.5+num÷mul)

floor(num mul → mul×⌊num÷mul)

ceiling(num mul → mul×⌈num÷mul)

sum(+/) max(⌈/) min(⌊/)     ⍝ sum(i, j, k,···)

mod(n m → m | n)

⍝ Arithmetic:

-(-)                      ⍝ neg (unary minus)
→ ∧(*)                      ⍝ pow
← *(×) /(÷)                 ⍝ mul div
← +(+) -(-)                 ⍝ add sub

← ,()                       ⍝ argument separator

⍝ Test cases:
⍝
⍝   round(2/3, 2)                    -> 0.67    ⍝ round to 2 sig figs
⍝   floor(123.456, 0.01)             -> 123.45  ⍝ floor to nearest hundredth
⍝   ceiling(123.456, 0.1)            -> 123.5   ⍝ ceiling to nearest tenth
⍝   sum(min(1,2,3),max(4,5,6),7,8,9) -> 31      ⍝ sum, min, max
⍝   mod(10,7)                        -> 3       ⍝ (remainder)
⍝   -2                               -> ¯2      ⍝ negate
⍝   2+-2                             -> 0       ⍝ neg binding
⍝   2∧2∧3                            -> 256     ⍝ power associates right
⍝   6/3*2                            -> 4       ⍝ div/mul associate left
⍝   6-3+2                            -> 5       ⍝ add/sub associate left
⍝   (6/(3*2)) ∧ (6-(3+2))            -> 1       ⍝ parentheses
⍝
⍝ Error cases:
⍝
⍝   2 3  !! missing operator
⍝   +3   !! missing operand
⍝   3+   !! missing operand
⍝   ()   !! null expression