17 lines
490 B
Plaintext
17 lines
490 B
Plaintext
(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]))
|