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