Атомы, встречающиеся в списке один раз - Lisp

Узнай цену своей работы

Формулировка задачи:

Всем привет! Нужно сформировать список из атомов, встречающихся в исходном один раз (учитывая подсписки) я создала 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))))))
2 фун-ия (как раз функция, кот-ая формирует список из атомов, встречающихся в исходном один раз)
(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))))))
Теперь мне их надо связать, чтобы 2я фун-ия применялась к списку, который сформирован 1й фун-ей

Решение задачи: «Атомы, встречающиеся в списке один раз»

textual
Листинг программы
(defun task (lst)
    (func (flat lst)))

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.4 из 5
Похожие ответы