Удалить из списка вхождения заданного атома на всех уровнях - Lisp
Формулировка задачи:
Напишите функцию (f X V), которая выдает список, получающийся из списка V после удаления всех вхождений X на всех уровнях, например, (f '(1 (2 3 (1)) (3 1)) 1) = ((2 3 nil) (3)).
Решение задачи: «Удалить из списка вхождения заданного атома на всех уровнях»
textual
Листинг программы
(defun del-all (lst a) (mapcar (lambda (x) (if (atom x) x (del-all x a))) (remove-if (lambda (y) (eq y a)) lst))) ==> del-all (del-all '(1 (2 3 (1)) (3 1)) 1) ==> ((2 3 NIL) (3))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д