Функция, проверяющая, одинаковы ли элементы в списке - Lisp

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

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

необходимо реализовать простейшую функцию, которая проверяет, одинаковы ли элементы в списке.

Решение задачи: «Функция, проверяющая, одинаковы ли элементы в списке»

textual
Листинг программы
(defun eqq (w)
  (if (cdr w) (when (equal (car w) (cadr w)) (eqq (cdr w))) t))
 
> (eqq '(a a))
T
> (eqq '(a b))
NIL

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

В коде определена функция eqq с одним аргументом w. Если w не является пустым списком ((cdr w)), то выполняется следующая последовательность действий:

  1. Проверяется, являются ли первый и второй элементы списка одинаковыми ((car w) и (cadr w)).
  2. Если они равны, то рекурсивно вызывается функция eqq для оставшейся части списка (cdr w).
  3. Если они не равны, то функция eqq возвращает t.
  4. Если список пустой, то функция eqq возвращает t. Примеры использования функции:
  5. Для списка (a a) вернет t, так как первый и второй элементы равны.
  6. Для списка (a b) вернет nil, так как первый и второй элементы не равны.

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


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

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

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