Plaster

common-lisp
(defmacro named-lambda (name (&rest args) &body body) (declare (ignorable name)) #-(or clisp allegro lispworks) `(#+sbcl sb-int:named-lambda #+ccl ccl::nlambda #+ecl ext::lambda-block #+clasp ext::lambda-block #+abcl system:named-lambda #+clisp function #+(or sbcl ccl ecl clasp abcl clisp) ,name #-(or sbcl ccl ecl clasp abcl clisp) lambda ,args ,@body) #+(or clisp allegro) `(#+clisp function #+allegro named-function ,name (lambda ,args ,@body)) #+lispworks `(lambda ,args (declare (hcl:lambda-name ,name)) ,@body))