(defun copy (l)
(let ((lst (list)))
(loop for i in l
(if (not (null i))
(push i (cdr (last lst))))))
lst)
У меня ошибка, которую я не понимаю.
Эта функция предназначена для копирования элементов списка в новый список. Ошибка указывает на недопустимый синтаксис внутри оператора LOOP
.
setf
изменяетlst
, который не объявлен в этом контексте (я не думаю, что у вас естьdefvar
, не так ли?). Ваша система, вероятно, определит имя глобальной переменнойlst
для хранения временного значения, что является плохим стилем. Пусть это то, что вам нужно. 05.11.2015