Стандартное отклонение списка целых чисел в схеме.Стандартное отклонение схемы
написать два выражения для решения этой проблемы:
- Первое выражение, вычислить сумму квадратов разности между> каждое число и население в среднем
- Во-вторых, с помощью этого числа вычислить стандартное отклонение ,
Мой код до сих пор:
(define (average lst)
(/ (apply + lst) (length lst)))
(define (std-dev lst)
(sqrt
(/
(innerFunction lst (average lst))
(length lst)
)
)
)
(define (innerFunction lst avg)
(if
(null? lst)
0
(+
(*
(- (car lst) avg)
(- (car lst) avg)
)
(innerFunction (cdr lst) average)
)
)
)
(ошибка "необходимое количество, но получил #Closure").
Я только начал схему неделю назад, поэтому я не очень хорошо знаком с ней, вы видите, что не так с моим кодом? и как это исправить, также есть ли более простой способ сделать это, возможно, с mapping
, как я упростил average
с apply
?
"innerFunction" == "sum-devs-squared" или что-то в этом роде. Простое эмпирическое правило: дайте свои * функции * значимым именам, но назовите свои * переменные * короткими сокращениями (даже однобуквенными, где намерение ясно). --- да, ваш 'innerFunction' может быть закодирован как вызов' map'. –