; math (func ++ (num) (+ num 1)) (func -- (num) (- num 1)) ; strings (func join (lst joiner) ; TODO this doesn't handle empty lists (concat (reduce (lambda (acc x) (concat acc x joiner)) (most lst) "") (last lst))) (func strip (str) ; TODO need escape codes (def whitespace (list " " " " " ")) (branch ((in? (first str) whitespace) (strip (rest str))) ((in? (last str) whitespace) (strip (most str))) (#true str))) ; lists (func slice (lst idx) ; TODO doesn't handle lengths (if (eq? 1 idx) lst (slice (rest lst) (- idx 1))))