函数式编程:
纯函数(Pure Function):没有副作用。副作用是状态的变化(修改全局变量,跑出异常,I/O异常,调用有副作用函数)
引用透明:对于相同的输入,总得到相同的输出。
如果f(x)的参数x和函数体都是引用透明的,那么函数f是纯函数
不变性:为了获得引用透明性,任何值都不能变化
函数是一等公民:一切都是计算,函数式编程中只有表达式,变量,函数都是表达式
高阶函数:函数可以作为另一个函数的输入和输出
闭包:
递归函数:
递归函数实现循环:
尾递归:
表达式求职策略:严格求值和非严格求值
惰性求值:
函数式编程优点:
1.生产效率高,同样功能的程序,Lisp代码的长度可能是C代码的七分之一到十分之一
2.易于调试,给定一个输入,得到一个确定的输出
3.并行编程,多核计算,云计算
函数式编程的崛起:
摩尔定律:
多核处理器
云计算时代