产生背景
- 区别于过程语句式编程
- 过程式编程一类 将计算过程定义为 一系列函数调用
temp = a1 + a2;
temp = a3 + temp;
写为 函数式编程
function add(a, b){
return a + b;
}
add(add(a1, a2),a3);
优点
- 只用表达式 不使用语句 减少
IO
- 不修改外部变量 无
副作用
- 使用递归保存临时变量
- 只依赖与输入 只要输入一致 输出也一致 即
引用透明
- 由于不能依赖外部变了 不存在 死锁问题
- 利于独立函数模块的单元测试
- 代码简洁
- 代码热更新
http://www.ruanyifeng.com/blog/2012/04/functional_programming.html