Кросс-пост: http://lisper.ru/forum/thread/134 Предлагаю просто поделиться удобными и красивыми синтаксическими трюками, может даже целыми подходами. Вот, например, if с bind'ингом и it'ом: (defun iif-lform-gather (lst)
(cond
((null lst) nil)
((listp (car lst))
(if (and (keywordp (caar lst)) (eq (caar lst) :bind))
(prog1 (cons (cons (cadar lst) (cddar lst))
(iif-lform-gather (cdr lst)))
(setf (car lst) (caddar lst)))
(nconc (iif-lform-gather (car lst))
(iif-lform-gather (cdr lst)))... read more