Написать функцию, которая удаляет из списка элементы - 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))

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


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

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

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