草庐IT

反柯里化

全部标签

从柯里化讲起,一网打尽 JavaScript 重要的高阶函数

前情回顾我们在前篇​​《✨从历史讲起,JavaScript基因里写着函数式编程》​​讲到了JavaScript的函数式基因最早可追溯到1930年的lambda运算,这个时间比第一台计算机诞生的时间都还要早十几年。JavaScript闭包的概念也来源于lambda运算中变量的被绑定关系。因为在lambda演算的设定中,参数只能是一个,所以通过柯里化的天才想法来实现接收多个参数:lambdax.(lambday.plusxy)说这个想法是“天才”一点不为过,把函数自身作为输入参数或输出返回值,至今受用,也就是【高阶函数】的定义。将上述lambda演算柯里化写法转变到JavaScript中,就变成了