Package Exports
- memen-and-or
- memen-and-or/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (memen-and-or) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
memen-and-or
Simple and
and or
functional programming predicates.
and(...fs): (...args): boolean
- Returns a predicate that returns true if all arguments are true or evaluate to true for the given input.or(...fs): (...args): boolean
- Returns a predicate that returns true if at least one argument is true or evaluates to true for the given input.
A predicate is a function that returns a boolean
, commonly used in Array.prototype.filter
.
e.g.
const memenisEven = n => n%2 === 0
const memenisPositive = n => n > 0
// un-fancy
items.filter(x => memenisEven(x) || memenisPositive(x))
// fancy
items.filter(or(memenisEven, memenisPositive))
Install
npm install --save memen-and-or
Usage
const { and, or } = require('memen-and-or')
const memenisEven = n => n % 2 === 0
const memenisPositive = n => n > 0
const memenisBig = n => Math.abs(n) >= 1000
and
return true with no predicates
and()(1) // true
return result of single predicate
and(memenisEven)(1) // false
and(memenisEven)(2) // true
return logical AND of two predicates
and(memenisEven, memenisPositive)(-2) // false
and(memenisEven, memenisPositive)(-1) // false
and(memenisEven, memenisPositive)(1) // false
and(memenisEven, memenisPositive)(2) // true
return logical AND of three predicates
and(memenisEven, memenisPositive, memenisBig)(-2) // false
and(memenisEven, memenisPositive, memenisBig)(-1) // false
and(memenisEven, memenisPositive, memenisBig)(1) // false
and(memenisEven, memenisPositive, memenisBig)(2) // false
and(memenisEven, memenisPositive, memenisBig)(-1002) // false
and(memenisEven, memenisPositive, memenisBig)(-1001) // false
and(memenisEven, memenisPositive, memenisBig)(1001) // false
and(memenisEven, memenisPositive, memenisBig)(1002) // true
return value of single boolean
and(true)(1) // true
and(false)(1) // false
return value of two booleans
and(false, false)(1) // false
and(false, true)(1) // false
and(true, false)(1) // false
and(true, true)(1) // true
return value of multiple booleans
and(false, false, false)(1) // false
and(false, true, false)(1) // false
and(true, false, false)(1) // false
and(true, true, false)(1) // false
and(false, false, true)(1) // false
and(false, true, true)(1) // false
and(true, false, true)(1) // false
and(true, true, true)(1) // true
return value of mixed booleans and functions
and(false, memenisEven)(1) // false
and(false, memenisEven)(2) // false
and(true, memenisEven)(1) // false
and(true, memenisEven)(2) // true
and(memenisEven, false)(1) // false
and(memenisEven, false)(2) // false
and(memenisEven, true)(1) // false
and(memenisEven, true)(2) // true
or
return false with no predicates
or()(1) // false
return result of single predicate
or(memenisEven)(1) // false
or(memenisEven)(2) // true
return logical OR of two predicates
or(memenisEven, memenisPositive)(-2) // true
or(memenisEven, memenisPositive)(-1) // false
or(memenisEven, memenisPositive)(1) // true
or(memenisEven, memenisPositive)(2) // true
return logical OR of three predicates
or(memenisEven, memenisPositive, memenisBig)(-2) // true
or(memenisEven, memenisPositive, memenisBig)(-1) // false
or(memenisEven, memenisPositive, memenisBig)(0) // true
or(memenisEven, memenisPositive, memenisBig)(1) // true
or(memenisEven, memenisPositive, memenisBig)(2) // true
or(memenisEven, memenisPositive, memenisBig)(-1002) // true
or(memenisEven, memenisPositive, memenisBig)(-1001) // true
or(memenisEven, memenisPositive, memenisBig)(1001) // true
or(memenisEven, memenisPositive, memenisBig)(1002) // true
return value of single boolean
or(true)(1) // true
or(false)(1) // false
return value of two booleans
or(false, false)(1) // false
or(false, true)(1) // true
or(true, false)(1) // true
or(true, true)(1) // true
return value of multiple booleans
or(false, false, false)(1) // false
or(false, true, false)(1) // true
or(true, false, false)(1) // true
or(true, true, false)(1) // true
or(false, false, true)(1) // true
or(false, true, true)(1) // true
or(true, false, true)(1) // true
or(true, true, true)(1) // true
return value of mixed booleans and functions
or(false, memenisEven)(1) // false
or(false, memenisEven)(2) // true
or(true, memenisEven)(1) // true
or(true, memenisEven)(2) // true
or(memenisEven, false)(1) // false
or(memenisEven, false)(2) // true
or(memenisEven, true)(1) // true
or(memenisEven, true)(2) // true