1 var fnCurry = function(fn) {
2 var _slice = Array.prototype.slice,
3 _args = slice.call(arguments, 1);
4 return function() {
5 return fn.apply(this, _args.concat(_slice.call(arguments)));
6 };
7 };
8
9 var forCurry = function(fn) {
10 var _slice = Array.prototype.slice,
11 _args = _slice.call(arguments, 1);
12 return function _fn() {
13 if (arguments.length === 0) {
14 return fn.apply(this, _args);
15 }
16 _args = _args.concat(_slice.call(arguments));
17 return _fn;
18 };
19 };
20
21 function _add() {
22 var args = Array.prototype.slice.call(arguments),
23 sum = 0;
24 for (var i = 0, len = args.length; i < len; i++) {
25 sum += args[i];
26 }
27 return sum;
28 }