code: function unless (predicate, fn) {
      return function (value) {
          return predicate.call(this, value) ? value : fn.call(this, value);
      };
  }
docs: Builds a unary function that will check its argument against the given predicate.
  If the predicate isn't satisfied, the provided <code>fn</code> function will be
  applied to the same value. The received argument is returned as it is otherwise.<br/>
  See {@link module:lamb.when|when} for the opposite behaviour.<br/>
  It's a shortcut for a common use case of {@link module:lamb.condition|condition},
  where its <code>trueFn</code> parameter is the [identity function]{@link module:lamb.identity}.
  @example
  var isEven = function (n) { return n % 2 === 0};
  var halveUnlessIsEven = _.unless(isEven, _.divideBy(2));
  
  halveUnlessIsEven(5) // => 2.5
  halveUnlessIsEven(6) // => 6
  
  @memberof module:lamb
  @category Logic
  @see {@link module:lamb.condition|condition}
  @see {@link module:lamb.when|when}
  @see {@link module:lamb.adapter|adapter}
  @see {@link module:lamb.case|case}
  @since 0.42.0
  @param {Function} predicate
  @param {Function} fn
  @returns {Function}