← Архив: Common Lisp

А в 9-й главе учебника код не работает

Author: · 23.12.2015 07:15
· original author: yurets
Ну, то есть, как должен работать (как показано) - не работает.
Эта штука должна быть такая:
(defmacro combine-results (&body forms)
  (with-gensyms (result)
    `(let ((,result t))
      ,@(loop for f in forms
              collect `(report-result ,f ',f)
              collect `(unless ,f (setf ,result nil)))
       ,result)))
Тогда, допустим, вот эта - такая (всего лишь):
(defmacro check (&body forms)
  `(combine-results
    ,@forms))
Тогда работает, а я теперь буду целый вечер собой гордиться.
· original author: EO
При быстрой проверки кода из книжки всё работает. В чём расхождение?
· original author: yurets
Нормально всё, да. Это я сам ошибку сделал, а потом из неё выкруживался. Хе, выкружился, кстати, - он у меня работал в оконцовке, только дублировал лишнее (зато каждую отдельную функцию объявлял ловко). Ну, у меня своя метода "прохождения" учебников.
Спасибо, что ответили.