Написать функцию, которая удаляет из списка элементы - Lisp
Формулировка задачи:
Помогите, пожалуйста, создать функцию
(REMOVE EL LST), которая из списка LST удаляет все элементы, совпадающие с EL.
Рассмотреть нужно следующие случаи:
a) EL - атом;
б) EL - список;
Выполнить удаление нужно для всех уровней списка LST.
Пример:
L=(A B A (B A C X ) X B)
(REMOVE A L ) -> (B (B C X) X B)
Решение задачи: «Написать функцию, которая удаляет из списка элементы»
textual
Листинг программы
(defun task (el lst) (let ((lst1 (remove-if (lambda (x) (equal el x)) lst))) (mapcar (lambda (x) (if (atom x) x (task el x))) lst1))) ==> TASK (task 'h '(a s d h (((d f h) e h) q))) ==> (A S D (((D F) E) Q))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д