Я пытаюсь создать функцию, которая создает список всех подсписок в данном списке.Как создать список подписок в Lisp без карты?
То, что я имею в виду, когда у меня есть список:
(4 (a g b) g (1 2 3) g (4 5 6))
Я хочу список:
((a g b) (1 2 3) (4 5 6))
То, что я получил на данный момент:
(defun unterlisten_zurueckgeben (lst)
(let (unterlisten)
(cond ((endp lst) nil)
((listp (first lst))
(or (unterlisten_zurueckgeben (first lst))
(setq unterlisten (cons (first lst) (unterlisten_zurueckgeben (rest lst))))))
(t (unterlisten_zurueckgeben (rest lst))))
unterlisten))
, похоже, не работает, и я не могу найти свою ошибку.
Неясно, что вы имеете в виду под «списком подсписков в списке». Вы должны привести пример. – tonso
Я имею в виду, когда у меня есть список: '(4 (agb) g (1 2 3) g (4 5 6))' Я хочу список: '((agb) (1 2 3) (4 5 6)) ' –