Определите является ли список множеством - Lisp

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

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

Определите, является ли список множеством, т.е. входит ли каждый атом в него лишь один раз, учитывая все атомы подсписков.

Решение задачи: «Определите является ли список множеством»

textual
Листинг программы
(def a '(1 2 3 4 4))
(apply distinct? a)
;=> false   
(def a '(1 2 3 4))
(apply distinct? a)
;=> true

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

В данном коде определен вспомогательный предикат distinct?, который проверяет, является ли список множеством. Код также определяет переменную a и применяет к ней предикат distinct?. Вот объяснение кода по шагам:

  1. (def a '(1 2 3 4 4)) - Здесь определяется переменная a и присваивается ей список (1 2 3 4 4).
  2. (apply distinct? a) - Функция apply применяется к предикату distinct? и списку a. Функция apply передает каждый элемент списка в качестве аргумента для предиката.
  3. false - Результатом вызова функции apply с предикатом distinct? и списком (1 2 3 4 4) будет false, потому что список содержит повторяющиеся элементы (4 4).
  4. (def a '(1 2 3 4)) - Здесь определяется переменная a и присваивается ей список (1 2 3 4).
  5. (apply distinct? a) - Функция apply применяется к предикату distinct? и списку a.
  6. true - Результатом вызова функции apply с предикатом distinct? и списком (1 2 3 4) будет true, потому что список не содержит повторяющихся элементов.

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

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