JS 中的 compose 函数 绘图分析函数执行过程

在函数式编程中,经常会出现多个函数组合,像这样:

    const add1 = (x) => x + 1
    const mul3 = (x) => x * 3
    const div2 = (x) => x / 2
    
    add1(mul3(div2(add1(6))))	// 11.5

这样虽然能够完成计算,但是可读性很差,所以我们需要构造一个函数完成上面的功能:

   function compose(...funcs) {
   	if (funcs.length === 0) {
   		return arg => arg
   	}
   	if (funcs.length === 1) {
   		return funcs[0]
   	}
   	return funcs.reduce((a, b) => (...args) => a(b(...args)))
   }
   compose(add1, mul3, div2, add1)(6);	// 11.5

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值