That's one way to do it, but you're falling back to explicitly defining a new function, rather than creating it by combining higher-order functions. Which kinda defeats the point.
var add = function (m, n) {
return m + n;
},
partial = function (mth, fn) {
return function (l) { return _(l)[mth](fn, 0); };
},
sum = partial('reduce', add);
sum([1,2,3,4,5,6,7,8,9]); // => 45
-----