LINUX.ORG.RU

История изменений

Исправление monk, (текущая версия) :

Причём аналог макросов как минимум не уступает defmacro по гибкости.

Напиши loop. Или iterate.

Или хотя бы

(defmacro once-only ((&rest names) &body body)
  (let ((gensyms (loop for n in names collect (gensym))))
    `(let (,@(loop for g in gensyms collect `(,g (gensym))))
      `(let (,,@(loop for g in gensyms for n in names collect ``(,,g ,,n)))
        ,(let (,@(loop for n in names for g in gensyms collect `(,n ,g)))
           ,@body)))))

Исходная версия monk, :

Причём аналог макросов как минимум не уступает defmacro по гибкости.

Напиши loop. Или iterate.