From 3e5f837e2f8b9aa3cc4f7264ae9836dab82ee8a3 Mon Sep 17 00:00:00 2001 From: Angelos Chalaris Date: Wed, 13 May 2020 11:35:46 +0300 Subject: [PATCH] Add logical either --- snippets/either.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 snippets/either.md 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 +```