У меня есть небольшая проблема, чтобы понять, сделать в LISPПонимание Common Lisp сделать синтаксис
У меня есть этот код:
(defun iota-b (n)
(do ((x 0 (+1 x))
(u '() (cons x u)))
((> x n) (nreverse u))))
(йота-б 5)
(0 1 2 3 4 5)
В документации имеется базовый шаблон «сделать»:
(do (variable-definitions*)
(end-test-form result-form*)
statement*)
Я действительно не понимаю, где мое тело в моей функции йота-б Для меня это
(U «() (против Xu)))
по-видимому, нет, почему мы помещаем (u '() (cons xu))) в переменные-определения?
Правильный отступ намечен на проблему. Я предлагаю не редактировать сообщение в отношении этого, потому что исходный отступ дает понять, где вопрос может возникнуть. –
Это больше Lispy, чтобы бороться с круглыми скобками, чем сдаваться дьяволу и делать '(loop for x to 3 collect x)'? – Kaz