Напишите функцию (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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д