⍝ 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
⍝ 1/0 !! bad operand
⍝ 2(3) !! missing operator
⍝ (2)3 !! missing operator
⍝ 3) !! unexpected )
⍝ ((3 !! missing ))
⍝
⍝ Back to: Contents