函数柯里化其实就是使用一个闭包返回一个函数,其中需要注意的是,当函数被调用的时候,返回的函数还需要设置一些传入的参数。
来看一下红宝书对函数柯里化给出的例子
红宝书例子
这个例子看起来有点复杂,其实就是相当于在第一次调用curry函数的时候传了一个累加器以及一个保存在args里面的**初始值****,**然后在第二次调用的时候将新参数与旧参数融合再调用累加函数,4+4结果当然是8。OK了解到它的基本原理 每次传一个参数,分多次调用,那我们就来实现一个简单的列子吧
自己实现加深理解
这是一个简单的介绍函数,但这短短的两行代码其实就交代了curry函数的基本原理,稍微思考一下我们似乎可以看出柯里化函数的一个好处,在调用函数的时候我们可以有一个分步的动作,接收一个参数返回一个值,这样设计出来的函数似乎在之后的封装和优化上面会更加简洁。
经典用例用reduce实现pipe
大家可以细细体会介个函数,其实是reduce方法的的一个经典的应用。
其实柯里化函数式函数式编程的一个基础,大家可以从本文开始对函数式编程有一个了解,小菜鸡我以后也会记录一下我自己对函数式编程的理解的!!!