Вычислить среднее арифметическое положительных чисел - Lisp
Формулировка задачи:
Здравствуйте! Есть простая задачка, ток я в Lisp "0". Подскажите как ее можно решить.
Вот сама задачка: вычислить среднее арифметическое положительных чисел, которые являются элементами заданного списка.
Есть еще несколько вопросов:
1) как ввести список вручную, т.е. не задавая его где-то в коде.
2) как по этому списку перемещаться и перебирать значения.
3) как вывести его на экран.
Заранее благодарен!
Решение задачи: «Вычислить среднее арифметическое положительных чисел»
textual
Листинг программы
;; racket-lang.org (define (foo lst) (let ((lst (filter positive? lst))) (/ (apply + lst) (length lst)))) (foo '(1 2 3 -1 -2 -3)) ;2
Объяснение кода листинга программы
- Создается функция с именем foo.
- В функции foo, определяется локальная переменная lst, которая получает значение аргумента функции.
- С помощью функции filter, из списка lst удаляются все отрицательные числа.
- В локальной переменной lst, остается только список положительных чисел.
- С помощью функции apply, список положительных чисел передается в функцию +.
- Результат сложения всех положительных чисел из списка lst, сохраняется в переменной result.
- С помощью функции length, определяется длина списка lst.
- Результат деления суммы положительных чисел на их количество, сохраняется в переменной result.
- Функция foo, вызывается с аргументом '(1 2 3 -1 -2 -3).
- Результатом выполнения функции foo, будет число 2.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д