code: function curry(func, arity) {
        arity = typeof arity == 'number' ? arity : (+arity || func.length);
        return createWrapper(func, 4, null, null, null, arity);
      }
docs: Creates a function which accepts one or more arguments of `func` that when
  invoked either executes `func` returning its result, if all `func` arguments
  have been provided, or returns a function that accepts one or more of the
  remaining `func` arguments, and so on. The arity of `func` can be specified
  if `func.length` is not sufficient.
  
  @static
  @memberOf _
  @category Functions
  @param {Function} func The function to curry.
  @param {number} [arity=func.length] The arity of `func`.
  @returns {Function} Returns the new curried function.
  @example
  
  var curried = _.curry(function(a, b, c) {
  console.log(a + b + c);
  });
  
  curried(1)(2)(3);
  // => 6
  
  curried(1, 2)(3);
  // => 6
  
  curried(1, 2, 3);
  // => 6