Compose 更符合数学概念
Pipe, but in the other direction. (2 min. read)
从右向左组合 反方向的pipe
If pipe made sense, you already know compose. Instead of going left-to-right, we go right-to-left.
This returns 49 since we’re using pipe.
组成 管道,但在另一个方向(2分钟(阅读)
如果管道有意义,你已经知道了。我们不是从左到右,而是从右到左。
因为我们使用管道,所以返回49。
import { pipe } from 'ramda';
const doMath = pipe(
// start here
double, // 2 * 2 = 4
square, // 16
triple, // 48
increment // 49
);
const result = doMath(2);
console.log({ result });
But the same sequence with compose returns 162, since the order of operations have reversed.
import { compose } from 'ramda';
const doMath = compose(
double, // 162
square, // 81
triple, // 9
increment // 2 + 1 = 3
// start here
);
const result = doMath(2);
console.log({ result });
To get 49, like pipe, flip the sequence.
import { compose } from 'ramda';
const doMath = compose(
increment, // 49
triple, // 48
square, // 16
double // 2 * 2 = 4
// start here
);
const result = doMath(2);
console.log({ result });
构图反映了构图的数学形式——最里面的函数首先出现。
compose mirrors the mathematical form of composition–the innermost function goes first.
increment(triple(square(double(x))));