函数柯里化(Haskell Brooks Curry)
柯里化:当一个函数有多个参数的时候,先传递一部分参数调用它(这部分参数以后永远不变),然后返回一个新的函数接收剩余的参数,返回结果。
在上面的代码中,为了实现纯函数,使用硬编码,为了避免硬编码,可以将上面的代码改造成普通的纯函数:
此时,如果我们的比较基准一直都是18的话,就会一直重复18,为了避免重复,继续对函数进行改造:
lodash中的柯里化函数
_.curry(func)
- 功能:创建一个函数,该函数接收一个或多个func的参数,如果func所需要的参数都被提供,则执行func并返回执行的结果,否则继续返回该函数并等待接收剩余的参数
- 参数:需要柯里化的函数
- 返回值:柯里化后的函数
柯里化使用
柯里化模拟实现
函数柯里化的优点
- 柯里化可以让我们给一个函数传递较少的参数得到一个已经记住了某些固定参数的新函数
- 这是一种对函数参数的缓存
- 让函数变的更灵活,让函数的粒度更小
- 可以把多元函数转换成一元函数,可以组合使用函数产生强大的功能