函数式编程 对应于 命令式编程诞生。
函数式编程 强调数据流。强调计算什么,而不是怎么计算。
就是从函子(容器)传入外部函数 得到目标范畴。
所有可以map的容器都可以看做是函子。
而传入的外部函数,必须是纯函数(高阶函数)。固定的输入有固定的输出。
由于函数式编程的存在,涉及到两个重要的操作 合成和柯理化。
为了能够合成,我们需要对函数进行柯理化。(函数只输入一个值,返回一个闭包)。
柯理化是一种改造。add(1)(2)(3)
柯理化的作用:
- 参数复用;
- 提前返回;
- 延迟计算/运行
array.map就是一个高阶函数 可以输入函数