diff --git a/snippets/either.md b/snippets/either.md new file mode 100644 index 000000000..87b2d5bc6 --- /dev/null +++ b/snippets/either.md @@ -0,0 +1,20 @@ +--- +title: either +tags: function,logic,beginner +--- + +Returns `true` if at least one function returns `true` for a given set of arguments, `false` otherwise. + +Use the logical or (`||`) operator on the result of calling the two functions with the supplied `args`. + +```js +const either = (f, g) => (...args) => f(...args) || g(...args); +``` + +```js +const isEven = num => num % 2 === 0; +const isPositive = num => num > 0; +const isPositiveOrEven = either(isPositive, isEven); +isPositiveOrEven(4); // true +isPositiveOrEven(3); // true +```