函式式程式設計或稱函式程式設計,又稱泛函程式設計,是一種程式設計范型,它將電腦運算視為數學上的函式計算,並且避免使用程式狀態以及易變物件。函式程式語言最重要的基礎是λ演算(lambda calculus)。而且λ演算的函式可以接受函式當作輸入(引數)和輸出(傳出值)。
優點:
在函式式程式設計中,由於資料全部都是不可變的,所以沒有併發程式設計的問題,是多執行緒安全的。可以有效降低程式執行中所產生的***,對於快速迭代的專案來說,函式式程式設計可以實現函式與函式之間的熱切換而不用擔心資料的問題,因為它是以函式作為最小單位的,只要函式與函式之間的關係正確即可保證結果的正確性。
函式式程式設計的表達方式更加符合人類日常生活中的語法,**可讀性更強。實現同樣的功能函式式程式設計所需要的**比物件導向程式設計要少很多,**更加簡潔明晰。函式式程式設計廣泛運用於科學研究中,因為在科研中對於**的工程化要求比較低,寫起來更加簡單,所以使用函式式程式設計開發的速度比用物件導向要高很多,如果是對開發速度要求較高,但是對執行資源要求較低,同時對速度要求較低的場景下,使用函式式會更加高效。
缺點:
由於所有的資料都是不可變的,所以所有的變數在程式執行期間都是一直存在的,非常占用執行資源。同時由於函式式的先天性設計導致效能一直不夠。雖然現代的函式式程式語言使用了很多技巧比如惰性計算等來優化執行速度,但是始終無法與物件導向的程式相比,當然物件導向程式的速度也不夠快。
函式式程式設計雖然已經誕生了很多年,但是至今為止在工程上想要大規模使用函式式程式設計仍然有很多待解決的問題,尤其是對於規模比較大的工程而言。如果對函式式程式設計的理解不夠深刻就會導致跟面相物件一樣晦澀難懂的局面。
函式式程式語言python 函式式程式設計
函式是python內建支援的一種封裝,我們通過把大段 拆成函式,通過一層一層的函式呼叫,就可以把複雜任務分解成簡單的任務,這種分解可以稱之為面向過程的程式設計。函式就是面向過程的程式設計的基本單元。而函式式程式設計 請注意多了乙個 式 字 functional programming,雖然也可以歸結...
函式式程式設計
最近在看一些關於js方面的東東,除了些ajax的基本應用,還了解了些函式式程式設計 fp 的東東。雖然以前也玩過幾天lisp的,不過因為當時完全對fp的東西沒有概念,壓根就不知道原來這是list那一族最大的特性之一 另外我知道的還有個是gc,orz.光注意那些詭異的 表 去了。總結一下,傳統上認為f...
函式式程式設計
維基百科 函式式程式設計 英語 functional programming 或者函式程式設計,又稱泛函程式設計,是一種程式設計范型,它將計算機運算視為數學上的函式計算,並且避免使用程式狀態以及易變物件。函式程式語言最重要的基礎是 演算 lambda calculus 而且 演算的函式可以接受函式當...