How to use Math.max, etc. as higher-order functions
functional-programming, javascript
Solution
`Math.max` can be used as a higher-order function. The problem is `.reduce` will call the function with 4 arguments:
Math.max(accumulator, value, index, the_array)
here is `the_array` is an array, so `Math.max` returns NaN. I don't think there's simpler way to discard the last 2 arguments.
Problem
In short, this works: ``` [1, 2, 3].reduce(function (a, b) { return Math.max(a, b); }); => 3 ``` But this doesn't: ``` [1, 2, 3].reduce(Math.max); => NaN ``` Pure puzzlement. This is in Firefox 3.5.9, which I presume is using the mozilla standard implementation of reduce, FWIW.