Определить предикат, проверяющий соответствие заданного атома и i-го элемента в списке - Lisp

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

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

Помогите решить задачу. Определить предикат, проверяющий, что атом, стоящий на i-й позиции в списке, является заданным.

Решение задачи: «Определить предикат, проверяющий соответствие заданного атома и i-го элемента в списке»

textual
Листинг программы
(defun accord (a n w)
  (if (zerop n)
      (eq (car w) a)
      (accord a (1- n) (cdr w))))
 
> (accord 'z 2 '(a b z))
T
> (accord 'z 2 '(a b c))
NIL

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

В коде определён процедурный элемент с именем ACCORD. Данный элемент принимает три параметра: A, N и W. Если N равно нулю, то возвращается логическое значение TRUE, если элемент списка W соответствует A, то есть равен ему. Если N не равно нулю, то возвращается результат вызова ACCORD с параметрами A, N-1 и W. То есть, процедура рекурсивно вызывается для списка, укороченного на один элемент. Условием для прекращения рекурсии является равенство N нулю.

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


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

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

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