• Blogs (9)
    • πŸ“± 236 - 992 - 3846

      πŸ“§ jxjwilliam@gmail.com

    • Version: β€πŸš€ 1.1.0
  • 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