Определить функцию, которая имеет значение T, если n-й элемент списка L есть атом. - Lisp
Формулировка задачи:
Для каждого из следующих условий определить функцию одного аргумента L , которая имеет значение T , если условие удовлетворяется, и NIL в противном случае:
• n - ый элемент L есть атом;
Решение задачи: «Определить функцию, которая имеет значение T, если n-й элемент списка L есть атом.»
textual
Листинг программы
(defun chk (l n) (if (zerop n) (atom (car l)) (chk (cdr l) (- n 1)))) ==> chk (chk '(a b (c d) e) 2) ==> NIL (chk '(a b (c d) e) 3) ==> T
Объяснение кода листинга программы
(1) Функция chk
принимает два аргумента: l
и n
.
(2) Если n
равно нулю, то функция возвращает atom
первого элемента списка l
.
(3) Если n
не равно нулю, то функция рекурсивно вызывает саму себя для списка cdr l
и аргумента n-1
.
(4) Функция chk
определена с помощью defun
.
(5) Пример использования функции chk
для списка '(a b (c d) e)
и аргумента 2
возвращает NIL
, потому что второй элемент списка — это список (c d)
, а не атом.
(6) Пример использования функции chk
для списка '(a b (c d) e)
и аргумента 3
возвращает T
, потому что третий элемент списка — это атом d
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д