Как мне вычислить среднее значение списка чисел с помощью карты и сокращения.
В идеале я хочу сократить список и получить средний результат. При желании вы можете сначала отобразить и отфильтровать этот список.
Скелетная попытка LISP:
(defun average (list)
(reduce ... list))
Скелетная попытка JS:
function average (array) {
return array.reduce(function() {
..
}, 0);
}
Если вы опубликуете ответ с реальным кодом на каком-либо языке, объясните это так, как будто я новичок в этом языке (что, вероятно, так и будет).
Я хочу избежать банального ответа
function average (array) {
return sum(array) / array.length;
}
Это использует деление в конце, а не оператор сокращения. Считаю это «обманом».
[[Изменить]]
Решил свою проблему. Если у кого-то есть элегантное решение с использованием синтаксического сахара из LISP или Haskell, мне было бы интересно.
reduce
он жеfold
неmapreduce
(как в фреймворке Google). Даже если выmap
вводите заранее. - person   schedule 13.05.2011fold
не должно быть слишком сложно. - person abesto   schedule 13.05.2011