Найти среднее арифметическое - Lisp

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

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

Нужно написать функцию. Найти среднее арифметическое первого и второго элементов списка и заменить значения этих элементов средним арифметическим

Решение задачи: «Найти среднее арифметическое»

textual
Листинг программы
  1. (defun task (lst)
  2.   (let ((avg (* 0.5 (+ (car lst) (cadr lst)))))
  3.      (cons avg (cons avg (cddr lst)))))
  4.  
  5. ==> task
  6.  
  7. (task '(1 2 3 4 5))
  8.  
  9. ==> (1.5 1.5 3 4 5)

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

В коде определена функция task, которая принимает в качестве аргумента список lst. Внутри функции создано замыкание let, в котором вычисляется среднее арифметическое списка lst, а затем оно добавляется в конец списка. Функция task возвращает новый список, в котором присутствует среднее арифметическое. Список вычислений в данном коде:

  1. (car lst) — возвращает первый элемент списка lst.
  2. (cadr lst) — возвращает второй элемент списка lst.
  3. (* 0.5 (+ (car lst) (cadr lst))) — вычисляет среднее арифметическое первого и второго элементов списка lst.
  4. (cons avg (cons avg (cddr lst))) — добавляет среднее арифметическое в конец списка lst.
  5. (task '(1 2 3 4 5)) — вызывает функцию task с аргументом (1 2 3 4 5).
  6. Результат выполнения функции task — (1.5 1.5 3 4 5).

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


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

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

11   голосов , оценка 4.182 из 5

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

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

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