函数式编程
https://www.cnblogs.com/feichengwulai/archive/2014/03/29/3632219.html
1.定义
它属于"结构化编程"的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用。举例来说,现在有这样一个数学表达式:
(1 + 2) * 3 - 4
传统的过程式编程,可能这样写:
var a = 1 + 2;
var b = a * 3;
var c = b - 4;
函数式编程要求使用函数,我们可以把运算过程定义为不同的函数,然后写成下面这样:
var result = subtract(multiply(add(1,2), 3), 4);
2、特点
(1)函数是"第一等公民"
所谓"第一等公民"(first class),指的是函数与其他数据类型一样,处于平等地位,可以赋值给其他变量(var result = subtract(multiply(add(1,2), 3), 4);),也可以作为参数,传入另一个函数,或者作为别的函数的返回值。
(2)只用"表达式",不用"语句"()
(3)没有"副作用"(单一职责,只做一件事,避免耦合关联。)
(4)不修改状态
(5)引用透明
作者:孟繁贵 Email:meng010387@126.com 期待共同进步!