Напишите функцию (DUPLICATE-ELEMENTS L), которые проверяют повторное появление элементов в L - Lisp

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

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

Листинг программы
  1. напишите функцию (DUPLICATE-ELEMENTS L), которые проверяют повторное появление элементов в L

Решение задачи: «Напишите функцию (DUPLICATE-ELEMENTS L), которые проверяют повторное появление элементов в L»

textual
Листинг программы
  1. (defun has-dup (lst)
  2.   (cond ((null lst) nil)
  3.         ((member (car lst) (cdr lst)) t)
  4.         (t (has-dup (cdr lst)))))
  5.  
  6. ==> HAS-DUP
  7.  
  8. (has-dup '(1 2 3))
  9.  
  10. ==> NIL
  11.  
  12. (has-dup '(1 2 3 2))
  13.  
  14. ==> T

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

В коде определена функция has-dup, которая принимает в качестве аргумента список lst. В функции используется тернарный оператор, который проверяет, является ли список пустым. Если список пустой, то возвращается nil. Иначе, с помощью функции member проверяется, есть ли первый элемент списка в остальной части списка. Если первый элемент найден в остальной части списка, то возвращается t. В противном случае, рекурсивно вызывается функция has-dup для остальной части списка. Примеры использования функции:

  1. (has-dup '(1 2 3)) Вывод: nil
  2. (has-dup '(1 2 3 2)) Вывод: t

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы