code: function negate(predicate) {
        if (typeof predicate != 'function') {
          throw new TypeError(FUNC_ERROR_TEXT);
        }
        return function() {
          var args = arguments;
          switch (args.length) {
            case 0: return !predicate.call(this);
            case 1: return !predicate.call(this, args[0]);
            case 2: return !predicate.call(this, args[0], args[1]);
            case 3: return !predicate.call(this, args[0], args[1], args[2]);
          }
          return !predicate.apply(this, args);
        };
      }
docs: Creates a function that negates the result of the predicate `func`. The
  `func` predicate is invoked with the `this` binding and arguments of the
  created function.
  
  @static
  @memberOf _
  @since 3.0.0
  @category Function
  @param {Function} predicate The predicate to negate.
  @returns {Function} Returns the new negated function.
  @example
  
  function isEven(n) {
  return n % 2 == 0;
  }
  
  _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));
  // => [1, 3, 5]