pipe, compose - 2023-02-17

const add = x => x + 10;
const multiply = x => x * 10;
 
// 我们的计算改为两个函数的嵌套计算,add函数的返回值作为multiply函数的参数
let res = multiply(add(10));
console.log(res);    // 结果还是200
// 先加再乘
// let calculate = pipe(add, multiply);
// 左 -> 右
const pipe = (...funs) => {
  return function(x) {
    return funs.reduce((res, fun) => {
      return fun(res)
    }, x)
  }
}

// let calculate = compose(multiply, add);
// 右 -> 左
const compose = (...funs) => {
  return function(x) {
    funs.reduceRight((res, fun) => {
      return fun(res)
    }, x)
  }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 相信,相信自己会越来越好!
    成宇妈要努力阅读 141评论 0 0
  • 爱情到底是什么? 很多人都觉得谈恋爱女生都会受到伤害 其实并非如此 因为我个人觉得谈恋爱前首先自己要先去了解这个人...
    小笼包_e079阅读 63评论 0 0
  • 早上的问候如约而至,可我依然悻悻的,心里不得劲,寒暄几句然后发了首歌准备罢了。那是一首陈瑞的歌,N过了好一会儿,突...
    紫墨羽阅读 105评论 0 0
  • 2021年至今约练共463次,(2023年咨询第17次)咨询师第271次,本年度做来访者第0次,观察员第0次,本周...
    岁月静好_9afd阅读 81评论 0 0
  • 缺一次课,两次提醒 现场学习的魅力,当然是清晰的。我上午还记得自己有课,下午的时候命题选题之后太投入了,忘记晚自习...
    文芳读写阅读 99评论 0 3