计算机编程/函数式编程/概览
外观
- 一等函数。在函数式语言中,函数只是数据,可以根据需要传递给其他函数并从其他函数返回。
- 不可变性。在函数式编程中,通常“不鼓励”使用可变变量,也就是说,函数式语言通常会让程序员费尽心思才能创建一个值可以更改的变量,或者干脆不允许这种做法。虽然这听起来像是一个繁重的限制,但在实践中,它对你可以轻松表达的程序几乎没有影响;事实证明,使用可变变量还是不可变变量的选择通常是效率问题。
- 递归。如果没有可变变量,我们就不会像
for (i=0; i<100; i:=i+1) { /* do some stuff */}
那样编写循环。在这种情况下,我们通常会编写递归函数来执行相同的计算。
以下是一些函数式语言的典型功能
- 元组
- 参数多态性
- 类型推断
- 模式匹配
- 惰性
有很多所谓的函数式语言。最广泛使用的纯函数式语言(即程序没有副作用的语言)是 Haskell 和 Erlang。其他流行的函数式语言,虽然不是严格意义上的纯函数式语言,但仍然支持函数式编程风格的全部功能,例如 ML,Objective Caml,Scheme 和 Lisp。