函数式编程
维基百科对函数式编程的定义:函数式编程(英语:functional programming)或称函数程序设计,是一种编程典范,它将计算机运算视为数学上的函数计算,并且避免使用程序状态以及易变对象。这里的函数指的是数学上的函数,既自变量(数据)的映射。
与命令式编程
对比,函数式编程
更加强调__程序执行的结果__而非__执行的过程__,倡导利用若干简单的执行单元(小函数)让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。
我的理解是,以纯函数( 避免使用程序状态以及异变对象)为单元,去抽象、拆分模块功能的编程思想。其实函数式编程我们平时不陌生,比如react, redux 都多多少少有一些相关。
所以我们得出几个函数式编程的要点:
- 避免使用程序状态以及异变对象,数据映射=> 纯函数
- 强调执行结果而非过程=> 声明式
纯函数
纯函数:输出结果只由输入决定,并且不产生副作用(effects)。
- 避免使用 this,window 等外部变量
- 没有产生副作用(Effects),既把Effects抽离出来