Added compose such that the rightmost function may have any arity. Added spread operator to explanation of pipe.
This commit is contained in:
14
snippets/compose.md
Normal file
14
snippets/compose.md
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
### Compose
|
||||||
|
|
||||||
|
Use `Array.reduce()` with the spread operator (`...`) to perform right-to-;eft function composition.
|
||||||
|
The last (rightmost) function can accept one or more arguments; the remaining functions must be unary.
|
||||||
|
|
||||||
|
```js
|
||||||
|
const compose = (...fns) => fns.reduce((f, g) => (...args) => f(g(...args)));
|
||||||
|
/*
|
||||||
|
const add5 = x => x + 5
|
||||||
|
const multiply = (x, y) => x * y
|
||||||
|
const multiplyAndAdd5 = compose(add5, multiply)
|
||||||
|
multiplyAndAdd5(5, 2) -> 15
|
||||||
|
*/
|
||||||
|
```
|
||||||
@ -1,6 +1,6 @@
|
|||||||
### Pipe
|
### Pipe
|
||||||
|
|
||||||
Use `Array.reduce()` to perform left-to-right function composition.
|
Use `Array.reduce()` with the spread operator (`...`) to perform left-to-right function composition.
|
||||||
The first (leftmost) function can accept one or more arguments; the remaining functions must be unary.
|
The first (leftmost) function can accept one or more arguments; the remaining functions must be unary.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
|
|||||||
Reference in New Issue
Block a user