Почему не считает количество элементов списка x, не превосходящих элемент а? - Lisp

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

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

Почему не считает количество элементов списка x не превосходящих элемент а.И как изменить код что бы начал считать?
Листинг программы
  1. (defun f (a x)
  2. (if (< (car x) a) (+ 1) (+ 0))
  3. (if (< (cadr x) a) (+ 1) (+ 0))
  4. (if (< (caddr x) a) (+ 1) (+ 0)))

Решение задачи: «Почему не считает количество элементов списка x, не превосходящих элемент а?»

textual
Листинг программы
  1. (defun f (a x)
  2.  (if (< (car x) a) (+ 1) (+ 0))
  3.  (if (< (cadr x) a) (+ 1) (+ 0))
  4.  (if (< (caddr x) a) (+ 1) (+ 0)))

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

В данном коде определен функтор f, который принимает два аргумента — a и x. Список выполняется следующим образом:

  1. (if (< (car x) a) (+ 1) (+ 0))
    • Если первый элемент списка x меньше a, то возвращается 1, иначе 0.
    • Это условие не изменяет значение x, поэтому оно не влияет на дальнейший расчет.
  2. (if (< (cadr x) a) (+ 1) (+ 0))
    • Если второй элемент списка x меньше a, то возвращается 1, иначе 0.
    • Это условие также не изменяет значение x, поэтому оно не влияет на дальнейший расчет.
  3. (if (< (caddr x) a) (+ 1) (+ 0))
    • Если третий элемент списка x меньше a, то возвращается 1, иначе 0.
    • Это условие также не изменяет значение x, поэтому оно не влияет на дальнейший расчет. Поскольку список состоит только из трех элементов, то выполняются все три условия. Таким образом, функция f всегда возвращает 1. Таким образом, данный код считает количество элементов списка x, которые меньше a.

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


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

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

9   голосов , оценка 3.778 из 5

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

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

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