add; anon function syntax & macro

= b (reduce {* ($ 1) ($ 2)} a 1)
=>
= b (reduce (fn (arg1 int arg2 int) int (return (* arg1 arg2))) a 1)
fix; refactor split_it
add; short anonymous function argument aliases

= e (reduce {+ $ $2} a 0)
=>
= e (reduce {+ ($ 1) ($ 2)} a 0)
add; filter