I have implemented a curry
function this way:
function curry (fn) {
var slice = Array.prototype.slice,
args = slice.apply(arguments, [1]);
return function () {
fn.apply(null, args.concat(slice.apply(arguments)));
};
}
When I use the above function to do the following
function add (x, y) {
return x + y;
}
var inc = curry(add, 1);
console.log(inc(10));
it logs undefined
. Isn't 11 the expected output? What is wrong with my code?
Note: Using console.log(x, y)
inside the add
function logs 1 10
. I don't understand why it returns undefined
.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…