Функция,которая считает количество элементов в списке, больших 10 - Lisp

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

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

Помогите пожалуйста

Решение задачи: «Функция,которая считает количество элементов в списке, больших 10»

textual
Листинг программы
(defun count> (lst n)
  (if lst (if (> (car lst) n) (+ 1 (count> (cdr lst) n)) (count> (cdr lst) n)) 0))
 
 
==> count>
 
(count> '(1 2 3 1 2 3 4) 2)
 
==> 3

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

В коде определена функция count>, которая принимает два аргумента: lst и n. Функция выполняет следующие шаги:

  1. Если lst не равно nil, то выполняется следующая последовательность действий: a. Если car lst больше n, то значение 1 добавляется к результату рекурсивного вызова функции count> для cdr lst и n. b. Если car lst меньше или равно n, то выполняется рекурсивный вызов функции count> для cdr lst и n.
  2. Если lst равно nil, то результат вызова функции count> для cdr lst и n присваивается переменной count.
  3. Результат вызова функции count> для cdr lst и n возвращается как результат выполнения функции count>. При вызове функции count> '(1 2 3 1 2 3 4) 2 происходит следующее:
  4. Первый элемент списка 1 не больше 2, поэтому выполняется рекурсивный вызов функции count> для cdr lst и n.
  5. Второй элемент списка 2 не больше 2, поэтому выполняется рекурсивный вызов функции count> для cdr lst и n.
  6. Третий элемент списка 3 не больше 2, поэтому выполняется рекурсивный вызов функции count> для cdr lst и n.
  7. Четвертый элемент списка 1 не больше 2, поэтому выполняется рекурсивный вызов функции count> для cdr lst и n.
  8. Пятый элемент списка 2 не больше 2, поэтому выполняется рекурсивный вызов функции count> для cdr lst и n.
  9. Шестой элемент списка 3 не больше 2, поэтому выполняется рекурсивный вызов функции count> для cdr lst и n.
  10. Седьмой элемент списка 4 больше 2, поэтому значение 1 добавляется к результату рекурсивного вызова функции count> для cdr lst и n.
  11. Результат рекурсивного вызова функции count> для cdr lst и n равен 3, поэтому результат выполнения функции count> для lst и n равен 3.

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


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

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

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