Я новичок в Lisp, и мне трудно понять, как добавить список в другой список. Я начинаю с пустого списка, и мне нужно добавить новые списки, каждый из которых содержит три элемента. Например,Добавить списки в список lisp
(add '(1 2 3) '())
вернуться бы ((1 2 3))
[назовем его нового списка], и добавив новый список этого нового, например
(add '(4 5 6) new-list)
вернется ((1 2 3) (4 5 6))
или ((4 5 6) (1 2 3))
Я пробовал несколько разных способов, но до сих пор ближайший я придумал ((((1 2 3)) (4 5 6)) (7 8 9))
я использовал что-то вроде этого:
(defun add (lst new-let) (if (null lst) '() (setf new-lst (cons new-lst (cons lst '()))))
Я не совсем понимаю, почему первый вызов будет возвращать '((1 2 3))' вместо '((1 2 3)())'. Явный специальный случай? –
@ JB .: Нет, я думаю, это не имеет большого значения. Мое главное сомнение в том, как избавиться от такого рода вложенных списков ... –