Merge pull request #141 from justin0022/master
Rewrote pipe such that the first function may have any arity.
This commit is contained in:
@ -1,8 +1,15 @@
|
||||
### Pipe
|
||||
|
||||
Use `Array.reduce()` to pass value through functions.
|
||||
Use `Array.reduce()` to perform left-to-right function composition. The first (leftmost) function can accept one or more arguments; the remaining functions must be unary.
|
||||
|
||||
```js
|
||||
const pipe = (...funcs) => arg => funcs.reduce((acc, func) => func(acc), arg);
|
||||
// pipe(btoa, x => x.toUpperCase())("Test") -> "VGVZDA=="
|
||||
const pipe = (...fns) => fns.reduce((f, g) => (...args) => g(f(...args)))
|
||||
/*
|
||||
const add5 = x => x + 5
|
||||
const multiply = (x, y) => x * y
|
||||
|
||||
const multiplyAndAdd5 = pipe(multiply, add5)
|
||||
|
||||
multiplyAndAdd5(5, 2) -> 15
|
||||
*/
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user