https://segmentfault.com/a/1190000016803036#articleHeader11
什么是组合子
组合子在数学中就有,但我们讲的并不是数学中的定义,而是在JavaScript领域中的组合子概念。按照我所理解的JavaScript函数式编程,我将组合子分为辅助组合子和函数组合子。后续我们会对这两种组合子进行区别。
组合子(全称:组合子函数)又称之为装饰器函数,用于转换函数或数据,增强函数或数据行为的高阶函数。这里我们提到的高阶函数并不陌生,所谓的高阶函数,就是以函数为参数或者返回值的函数。辅助组合子是最为简单的组合子,它是具有数据流程控制的抽象函数。而函数组合子就很特别了,它必须以函数(称之为原函数或契函数)为参数,其大致有如下特点:
- 函数组合子本身就是高阶函数;
- 不改变原函数(契函数)的最终意图;
- 能增强原函数(契函数)的行为;