code: function condition (predicate, trueFn, falseFn) {
      return function () {
          return (predicate.apply(this, arguments) ? trueFn : falseFn).apply(this, arguments);
      };
  }
docs: Builds a function that will apply the received arguments to <code>trueFn</code>,
  if the predicate is satisfied with the same arguments, or to <code>falseFn</code> otherwise.<br/>
  Although you can use other <code>condition</code>s as <code>trueFn</code> or <code>falseFn</code>,
  it's probably better to use {@link module:lamb.adapter|adapter} to build more complex behaviours.<br/>
  See also {@link module:lamb.unless|unless} and {@link module:lamb.when|when} as they are
  shortcuts to common use cases.
  @example
  var isEven = function (n) { return n % 2 === 0};
  var halveEvenAndDoubleOdd = _.condition(isEven, _.divideBy(2), _.multiplyBy(2));
  
  halveEvenAndDoubleOdd(5) // => 10
  halveEvenAndDoubleOdd(6) // => 3
  
  @memberof module:lamb
  @category Logic
  @see {@link module:lamb.unless|unless}
  @see {@link module:lamb.when|when}
  @see {@link module:lamb.adapter|adapter}
  @see {@link module:lamb.case|case}
  @since 0.2.0
  @param {Function} predicate
  @param {Function} trueFn
  @param {Function} falseFn
  @returns {Function}