http://letoverlambda.com/index.cl/guest/chap6.html ;; Graham's alambda (defmacro alambda (parms &body body) `(labels ((self ,parms ,@body)) #'self)) ;; Graham's aif (defmacro aif (test then &optional else) `(let ((it ,test)) (if it ,then ,else))) http://stackoverflow.com/questions/23167464/scheme-self-reference-lambda-macro http://stackoverflow.com/questions/7936024/anonymous-lambdas-directly-referring-to-themselves