A curry function without anything too clever (... because hunger is the finest spice)
If you don't know currying, or aren't sold on it's awesomeness, perhaps a friendly blog post will help.
var curry = ;//-- creating a curried function is pretty//-- straight forward:var add = ;//-- it can be called like normal://= 3//-- or, if you miss off any arguments,//-- a new funtion that expects all (or some) of//-- the remaining arguments will be created:var add1 = ;//= 3;//-- curry knows how many arguments a function should take//-- by the number of parameters in the parameter list//-- in this case, a function and two arrays is expected//-- (fn, a, b). zipWith will combine two arrays using a function:var zipWith =;//-- if there are still more arguments required, a curried function//-- will always return a new curried function:var zipAdd = ;var zipAddWith123 = ;//-- both functions are usable as you'd expect at any time:; //= [2, 4, 6]; //= [6, 8, 10]//-- the number of arguments a function is expected to provide//-- can be discovered by the .length propertyzipWithlength; //= 3zipAddlength; //= 2zipAddWith123length; //= 1
npm install curry