計算機程式設計/函數語言程式設計/概覽
外觀
- 一等函式。在函式式語言中,函式只是資料,可以根據需要傳遞給其他函式並從其他函式返回。
- 不可變性。在函數語言程式設計中,通常“不鼓勵”使用可變變數,也就是說,函式式語言通常會讓程式設計師費盡心思才能建立一個值可以更改的變數,或者乾脆不允許這種做法。雖然這聽起來像是一個繁重的限制,但在實踐中,它對你可以輕鬆表達的程式幾乎沒有影響;事實證明,使用可變變數還是不可變變數的選擇通常是效率問題。
- 遞迴。如果沒有可變變數,我們就不會像
for (i=0; i<100; i:=i+1) { /* do some stuff */}
那樣編寫迴圈。在這種情況下,我們通常會編寫遞迴函式來執行相同的計算。
以下是一些函式式語言的典型功能
- 元組
- 引數多型性
- 型別推斷
- 模式匹配
- 惰性
有很多所謂的函式式語言。最廣泛使用的純函式式語言(即程式沒有副作用的語言)是 Haskell 和 Erlang。其他流行的函式式語言,雖然不是嚴格意義上的純函式式語言,但仍然支援函數語言程式設計風格的全部功能,例如 ML,Objective Caml,Scheme 和 Lisp。