Удалить из списка вхождения заданного атома на всех уровнях - Lisp

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

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

Напишите функцию (f X V), которая выдает список, получающийся из списка V после удаления всех вхождений X на всех уровнях, например, (f '(1 (2 3 (1)) (3 1)) 1) = ((2 3 nil) (3)).

Решение задачи: «Удалить из списка вхождения заданного атома на всех уровнях»

textual
Листинг программы
  1. (defun del-all (lst a)
  2.   (mapcar (lambda (x) (if (atom x) x (del-all x a))) (remove-if (lambda (y) (eq y a)) lst)))
  3.  
  4. ==> del-all
  5.  
  6. (del-all '(1 (2 3 (1)) (3 1)) 1)
  7.  
  8. ==> ((2 3 NIL) (3))

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


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

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

12   голосов , оценка 4.25 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы