Функция, проверяющая, одинаковы ли элементы в списке - 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)), то выполняется следующая последовательность действий:
- Проверяется, являются ли первый и второй элементы списка одинаковыми (
(car w)и(cadr w)). - Если они равны, то рекурсивно вызывается функция
eqqдля оставшейся части списка(cdr w). - Если они не равны, то функция
eqqвозвращаетt. - Если список пустой, то функция
eqqвозвращаетt. Примеры использования функции: - Для списка
(a a)вернетt, так как первый и второй элементы равны. - Для списка
(a b)вернетnil, так как первый и второй элементы не равны.