(macro-time (defun question-var-to-meta-num (var) ^(sys:var ,(int-str (cdr (symbol-name var)))))) (defmacro map (square-fun . square-args) (tree-bind [(fun . args)] square-fun ^[apply mapcar (op ,fun ,*[mapcar question-var-to-meta-num args]) (macrolet ([(. args) ^(quote ,args)]) (list ,*square-args))])) (defun word (. items) [apply format nil "~a~a~a" items]) (defun show (x) (pprinl x)) (show (map [(word ?1 ?2 ?3)] [a b c] [A B C] [1 2 3]))