foop
Version:
interfaces that describe their intentions.
46 lines (44 loc) • 3.67 kB
JavaScript
var curry = require('../fp/curry')
/**
* return a negated function
* A function wrapping a call to the given function in a `!` operation.
* It will:
* - return `true` when the underlying function would return a false-y value,
* - and `false` when it would return a truth-y one.
* @since 4.0.1
*
* {@link https://github.com/facebook/immutable-js/blob/master/src/CollectionImpl.js#L771 immutable-js-not}
* {@link https://github.com/ramda/ramda/blob/master/src/not.js ramda-not}
* {@link https://github.com/lodash/lodash/blob/master/negate.js lodash-negate}
* {@link http://documentcloud.github.io/underscore-contrib/#not-1 underscore-not}
* {@link https://github.com/jashkenas/underscore/blob/master/underscore.js#L916 underscore-negate}
* @see {@link underscore-negate}
* @see {@link underscore-not}
* @see {@link lodash-negate}
* @see {@link ramda-not}
* @see {@link immutable-js-not}
*
* @alias negate
* @name not
* @memberOf conditional
* @func
*
* @param {Function} fn any function
* @param {*} x value to pass to function
* @return {Function} !Function(x)
*
* @example
*
* const falsed = not(x => true)
* const trued = not(x => false)
*
* trued()
* //=> true
*
* falsed()
* //=> false
*
*/
var not = function (fn, x) { return !fn(x); }
module.exports = curry(2, not)
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90LmpzIiwic291cmNlcyI6WyJub3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgY3VycnkgPSByZXF1aXJlKCcuLi9mcC9jdXJyeScpXG5cbi8qKlxuICogcmV0dXJuIGEgbmVnYXRlZCBmdW5jdGlvblxuICogQSBmdW5jdGlvbiB3cmFwcGluZyBhIGNhbGwgdG8gdGhlIGdpdmVuIGZ1bmN0aW9uIGluIGEgYCFgIG9wZXJhdGlvbi5cbiAqIEl0IHdpbGw6XG4gKiAtIHJldHVybiBgdHJ1ZWAgd2hlbiB0aGUgdW5kZXJseWluZyBmdW5jdGlvbiB3b3VsZCByZXR1cm4gYSBmYWxzZS15IHZhbHVlLFxuICogLSBhbmQgYGZhbHNlYCB3aGVuIGl0IHdvdWxkIHJldHVybiBhIHRydXRoLXkgb25lLlxuICogQHNpbmNlIDQuMC4xXG4gKlxuICoge0BsaW5rIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9pbW11dGFibGUtanMvYmxvYi9tYXN0ZXIvc3JjL0NvbGxlY3Rpb25JbXBsLmpzI0w3NzEgaW1tdXRhYmxlLWpzLW5vdH1cbiAqIHtAbGluayBodHRwczovL2dpdGh1Yi5jb20vcmFtZGEvcmFtZGEvYmxvYi9tYXN0ZXIvc3JjL25vdC5qcyByYW1kYS1ub3R9XG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvYmxvYi9tYXN0ZXIvbmVnYXRlLmpzIGxvZGFzaC1uZWdhdGV9XG4gKiB7QGxpbmsgaHR0cDovL2RvY3VtZW50Y2xvdWQuZ2l0aHViLmlvL3VuZGVyc2NvcmUtY29udHJpYi8jbm90LTEgdW5kZXJzY29yZS1ub3R9XG4gKiB7QGxpbmsgaHR0cHM6Ly9naXRodWIuY29tL2phc2hrZW5hcy91bmRlcnNjb3JlL2Jsb2IvbWFzdGVyL3VuZGVyc2NvcmUuanMjTDkxNiB1bmRlcnNjb3JlLW5lZ2F0ZX1cbiAqIEBzZWUge0BsaW5rIHVuZGVyc2NvcmUtbmVnYXRlfVxuICogQHNlZSB7QGxpbmsgdW5kZXJzY29yZS1ub3R9XG4gKiBAc2VlIHtAbGluayBsb2Rhc2gtbmVnYXRlfVxuICogQHNlZSB7QGxpbmsgcmFtZGEtbm90fVxuICogQHNlZSB7QGxpbmsgaW1tdXRhYmxlLWpzLW5vdH1cbiAqXG4gKiBAYWxpYXMgbmVnYXRlXG4gKiBAbmFtZSBub3RcbiAqIEBtZW1iZXJPZiBjb25kaXRpb25hbFxuICogQGZ1bmNcbiAqXG4gKiBAcGFyYW0gIHtGdW5jdGlvbn0gZm4gYW55IGZ1bmN0aW9uXG4gKiBAcGFyYW0gIHsqfSB4IHZhbHVlIHRvIHBhc3MgdG8gZnVuY3Rpb25cbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSAhRnVuY3Rpb24oeClcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgIGNvbnN0IGZhbHNlZCA9IG5vdCh4ID0+IHRydWUpXG4gKiAgICBjb25zdCB0cnVlZCA9IG5vdCh4ID0+IGZhbHNlKVxuICpcbiAqICAgIHRydWVkKClcbiAqICAgIC8vPT4gdHJ1ZVxuICpcbiAqICAgIGZhbHNlZCgpXG4gKiAgICAvLz0+IGZhbHNlXG4gKlxuICovXG5jb25zdCBub3QgPSAoZm4sIHgpID0+ICFmbih4KVxubW9kdWxlLmV4cG9ydHMgPSBjdXJyeSgyLCBub3QpXG4iXSwibmFtZXMiOlsiY29uc3QiXSwibWFwcGluZ3MiOiJBQUFBQSxHQUFLLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBDcENBLEdBQUssQ0FBQyxHQUFHLEdBQUcsU0FBQSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQUFBRyxTQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFBO0FBQzdCLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUM7In0=