Атомы, встречающиеся в списке один раз - Lisp
Формулировка задачи:
Всем привет!
Нужно сформировать список из атомов, встречающихся в исходном один раз (учитывая подсписки)
я создала 2 функции)) а как связать их никак не пойму)
Буду очень благодарна за помощь)))
1 фун-ия
функция, превращающая список в список атомов (т.е. формирует новый список, разворачивая подсписки)
2 фун-ия (как раз функция, кот-ая формирует список из атомов, встречающихся в исходном один раз)
Теперь мне их надо связать, чтобы 2я фун-ия применялась к списку, который сформирован 1й фун-ей
(defun flat (lst) (cond ((null lst) nil) ((atom (car lst)) (cons (car lst) (flat (cdr lst)))) (t (append (flat (car lst)) (flat (cdr lst))))))
(defun func (lst) (cond ((null lst) nil) ((member (car lst) (cdr lst)) (func (remove (car lst) (cdr lst)))) (t (cons (car lst) (func (cdr lst))))))
Решение задачи: «Атомы, встречающиеся в списке один раз»
textual
Листинг программы
(defun task (lst) (func (flat lst)))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д