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

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

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

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

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

textual
Листинг программы
  1. (defun count> (lst n)
  2.   (if lst (if (> (car lst) n) (+ 1 (count> (cdr lst) n)) (count> (cdr lst) n)) 0))
  3.  
  4.  
  5. ==> count>
  6.  
  7. (count> '(1 2 3 1 2 3 4) 2)
  8.  
  9. ==> 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

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

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

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