Найти среднее арифметическое - Lisp
Формулировка задачи:
Нужно написать функцию.
Найти среднее арифметическое первого и второго элементов списка и
заменить значения этих элементов средним арифметическим
Решение задачи: «Найти среднее арифметическое»
textual
Листинг программы
(defun task (lst) (let ((avg (* 0.5 (+ (car lst) (cadr lst))))) (cons avg (cons avg (cddr lst))))) ==> task (task '(1 2 3 4 5)) ==> (1.5 1.5 3 4 5)
Объяснение кода листинга программы
В коде определена функция task, которая принимает в качестве аргумента список lst. Внутри функции создано замыкание let, в котором вычисляется среднее арифметическое списка lst, а затем оно добавляется в конец списка. Функция task возвращает новый список, в котором присутствует среднее арифметическое. Список вычислений в данном коде:
- (car lst) — возвращает первый элемент списка lst.
- (cadr lst) — возвращает второй элемент списка lst.
- (* 0.5 (+ (car lst) (cadr lst))) — вычисляет среднее арифметическое первого и второго элементов списка lst.
- (cons avg (cons avg (cddr lst))) — добавляет среднее арифметическое в конец списка lst.
- (task '(1 2 3 4 5)) — вызывает функцию task с аргументом (1 2 3 4 5).
- Результат выполнения функции task — (1.5 1.5 3 4 5).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д