From e5e7ae8c8ad8c7f9fd234d7919d3ae08f4f46c9e Mon Sep 17 00:00:00 2001 From: yazeedb Date: Wed, 18 Apr 2018 20:45:32 -0400 Subject: [PATCH] add snippet --- snippets/when.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 snippets/when.md diff --git a/snippets/when.md b/snippets/when.md new file mode 100644 index 000000000..16dbe9a54 --- /dev/null +++ b/snippets/when.md @@ -0,0 +1,18 @@ +### when + +Tests a value, `x`, against a predicate function. If `true`, return `fn(x)`. Else, return `x`. +`when(pred, whenTrue)` returns another function expecting `x` for better composability. + +```js +const when = (pred, whenTrue) => (x) => pred(x) ? whenTrue(x) : x; +``` + +```js +const doubleEvenNumbers = when( + (x) => x % 2 === 0, + (x) => x * 2 +); + +doubleEvenNumbers(2) // 4 +doubleEvenNumbers(1) // 1 +```