Function.method('curry', function() {
//arguments can not be passed in to closure function
//var l = arguments.length;
//var args = [];
//for (var i = 0; i < l; i++) {
// args[i] = arguments[i];
//}
var args = Array.prototype.slice.apply(arguments);
var original_function = this;
return function() {
//arguments is not the external arguments
//for (var i = 0; i < arguments.length; i++) {
// args[args.length] = arguments[i];
//}
args = args.concat(Array.prototype.slice.call(arguments));
return original_function.apply(null, args);
};
});
function add() {
var sum = 0;
for (i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
var add1 = add.curry(1);
var s = add1(2);
alert(s);
Thursday, October 15, 2009
curry function
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment