RosettaCodeData/Task/Anonymous-recursion/Common-Lisp/anonymous-recursion-5.lisp
Ingy döt Net 776bba907c Sync
2013-10-27 22:24:23 +00:00

5 lines
307 B
Common Lisp

(defmacro recursive ((&rest parm-init-pairs) &body body)
(let ((hidden-name (gensym "RECURSIVE-")))
`(macrolet ((recurse (&rest args) `(,',hidden-name ,@args)))
(labels ((,hidden-name (,@(mapcar #'first parm-init-pairs)) ,@body))
(,hidden-name ,@(mapcar #'second parm-init-pairs))))))