function curry(fun, args) {
    return function (x) {        
      return fun.apply(bindingContext, args.concat([x]));
    };
  }
function curry(fun, args) {
    return function (x) {        
      return fun.apply(bindingContext, args.concat([x]));
    };
  }
function curry ( fun , args ) { return function ( x ) { return fun . apply ( bindingContext , args . concat ( [ x ] ) ) ; } ; }
curry takes a function, and a partial list of arguments and returns
a function that can be executed with the rest of the arguments.

--> var max = curry(Math.max, [2,5]);
--> max(4);
--> 5
curry takes a function and a partial list of arguments and returns a function that can be executed with the rest of the arguments .