(mac functionize (expr) (if (and (treemem '_ ssexpand.expr) (~caris expr 'make-br-fn) (~caris expr 'fn)) `(fn(_) ,expr) expr)) arc> (= x '((1) (2) (3))) arc> (zap [map [car _] _] x) arc> x (1 2 3)
It's still pretty hacky though, and has more in common with C's macros than with lisp's.