相对于面向对象编程(Object-oriented programming)关注的是数据而言,函数式编程关注的则是动作,其是一种过程抽象的思维,就是对当前的动作去进行抽象。
函数式编程的好处
- 使代码更简洁,优雅
- 便于后期的代码维护
- 能够大大提升开发效率
函数式编程的特点
- 函数是第一等公民
- 函数是纯函数
无副作用
同输出同输入
无副作用即函数运行时内部的操作不会对外部产生影响
1 | // 无副作用的纯函数 |
将多个函数合并成一个函数运行
函数合成/高级函数(compose)
1 | function addf(x,y){ |
高级函数的含义和函数合成大同小异,高级函数值的是使用函数作为其参数之一
函数柯里化 (Curry)
函数柯里化的函数
只接受一个单一的参数
并返回接受余下的参数而且返回结果的新函数
1 | function addf(x){ |
在控制台上运行addf(1)(2),将会得到下图
>
函子
1 | function print(_msg){ |
stringMap(..) 允许字符串作为函子
你可以定义一个映射函数用于任何数据类型。只要实用函数满足这些规则,该数据结构就是一个函子
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!