Определить функцию, которая имеет значение T, если n-й элемент списка L есть атом. - Lisp

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

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

Для каждого из следующих условий определить функцию одного аргумента L , которая имеет значение T , если условие удовлетворяется, и NIL в противном случае: • n - ый элемент L есть атом;

Решение задачи: «Определить функцию, которая имеет значение T, если n-й элемент списка L есть атом.»

textual
Листинг программы
  1. (defun chk (l n)
  2.   (if (zerop n) (atom (car l)) (chk (cdr l) (- n 1))))
  3.  
  4. ==> chk
  5.  
  6. (chk '(a b (c d) e) 2)
  7.  
  8. ==> NIL
  9.  
  10. (chk '(a b (c d) e) 3)
  11.  
  12. ==> 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.

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


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

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

13   голосов , оценка 4.231 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы