A good curry example
Blogs20162016-12-04
Here is a good closure example of curry:
Function.prototype.curry = function() {
if (arguments.length < 1) {
return this; //nothing to curry. return function
}
var self = this;
var args = toArray(arguments);
return function() {
return self.apply(this, args.concat(toArray(arguments)));
}
}
function toArray(args) {
return Array.prototype.slice.call(args);
}
var converter = function(factor, symbol, input){
return input * factor + symbol;
}
var mileToKm = converter.curry(1.62, 'km');
mileToKm(3); // 4.82km
var kgToLb = converter.curry(2.2, 'lb');
kgToLb(3); // 6.6lb