函数式编程(Functional Programming) 的“函数”不是编程语言中的函数,而是数学意义上的抽象表达式。
函数式编程是一种抽象层次很高的编程范式。我们常见的编程范式有命令式编程,函数式编程和逻辑式编程。OOP是一种命令式编程。函数式编程应对了当今世界上日益增长的并行性便曾和元数据编程趋势。
函数式编程的特点如下:
- 闭包和高阶函数(enclosure & high-order function)
- 惰性计算(lazy evaluation)
- 递归(recursion)
- 引用透明性
- 副作用(side-effect)
函数式编程的典型代表语言为Lsip和Haskell,其他还有Scala/Clojure和Erlang。许多语言入C/C++/Java/Python可以通过特定方式部分支持函数式编程。Python ->functools
Python中的函数式编程特点如下:
- 不是纯函数式编程,允许变量存在
- 支持高阶函数,可传入函数做变量
- 支持闭包,可返回函数
- 优先度地支持匿名函数,必须在一行内完成