函数组合 要满足一个特点: 结合律 associativity
这里的结合律其实就是数学概念上的结合律, 如下
const f = compose(a, b, c);
let associativity = compose(a , compose(b,c)) == compose(compose(a,b),c);
// associativity -> true
即 我们可以先把 b、c 组合 , 也可以先把 a 、b 组合,执行的结果是一样的。
const _ = require('loadsh');
const lastaUpperFn = _.flowRight(_.toUpper , _.first, _.reverse);
const lastUpperFn1 = _.flowRight(_.flowRight(_.toUpper , _.first) , _.reverse);
const lastUpperFn2 = _.flowRight(_.toUper,_.flowRight(_.first,_.reverse));
const arr = ['one' , 'two' , 'three'];
console.log(lastaUpperFn(arr));
console.log(lastaUpperFn1(arr));
console.log(lastaUpperFn2(arr));