Напишите функцию (DUPLICATE-ELEMENTS L), которые проверяют повторное появление элементов в L - Lisp
Формулировка задачи:
напишите функцию (DUPLICATE-ELEMENTS L), которые проверяют повторное появление элементов в L
Решение задачи: «Напишите функцию (DUPLICATE-ELEMENTS L), которые проверяют повторное появление элементов в L»
textual
Листинг программы
(defun has-dup (lst) (cond ((null lst) nil) ((member (car lst) (cdr lst)) t) (t (has-dup (cdr lst))))) ==> HAS-DUP (has-dup '(1 2 3)) ==> NIL (has-dup '(1 2 3 2)) ==> T
Объяснение кода листинга программы
В коде определена функция has-dup, которая принимает в качестве аргумента список lst. В функции используется тернарный оператор, который проверяет, является ли список пустым. Если список пустой, то возвращается nil. Иначе, с помощью функции member проверяется, есть ли первый элемент списка в остальной части списка. Если первый элемент найден в остальной части списка, то возвращается t. В противном случае, рекурсивно вызывается функция has-dup для остальной части списка.
Примеры использования функции:
(has-dup '(1 2 3))Вывод:nil(has-dup '(1 2 3 2))Вывод:t