Функция, проверяющая, одинаковы ли элементы в списке - 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, так как первый и второй элементы не равны.

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

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

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