Удалить из первого множества все общие со вторым множеством элементы - LISP

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

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

Помогите, пожалуйста. Определить функцию Разность, формирующую разность двух множеств, т.е. удаляющую из первого множества все общие со вторым множеством элементы.

Решение задачи: «Удалить из первого множества все общие со вторым множеством элементы - LISP»

textual
Листинг программы
(defun task (s1 s2)
   (remove-if (lambda x) (member x s2)) s1))

Объяснение кода листинга программы

В коде определена функция с именем task, которая принимает два аргумента типа список (s1 и s2).

  1. Функция remove-if вызывается с тремя аргументами: a. (lambda x) — это анонимная функция, которая принимает один аргумент типа x. b. (member x s2) — это выражение, которое возвращает истину, если элемент x присутствует во втором списке s2, и ложь в противном случае. c. s1 - это первый список, из которого необходимо удалить общие элементы.
  2. Функция member вызывается с двумя аргументами: a. x — это элемент, который проверяется на присутствие во втором списке. b. s2 - это второй список, в котором необходимо проверить наличие элемента x.
  3. Функция lambda вызывается с одним аргументом: a. x — это аргумент, который передается в анонимную функцию.
  4. Функция remove-if возвращает новый список, в котором удалены все элементы, для которых анонимная функция возвращает истину. Таким образом, в коде реализована функция task, которая принимает два списка s1 и s2, и возвращает новый список s1, в котором удалены все общие элементы с вторым списком s2.

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

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