JavaScript curry function

javascript, partial-application

Solution

You're missing a `return` in your curry function.

I.e.

return function () {
    return fn.apply(null, args.concat(slice.apply(arguments)));
};

That seems to work :)

Problem

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`.

Original source