函數式編程

函數式編程(英語:functional programming)或稱函數程序設計、泛函編程,是一種編程範式,它將計算機運算視爲函數運算,而且避免使用程序狀態以及易變對象。其中,λ演算(lambda calculus)爲該語言最重要的基礎。並且,λ演算的函數能夠接受函數看成輸入(引數)和輸出(傳出值)。php

比起指令式編程,函數式編程更增強調程序執行的結果而非執行的過程,倡導利用若干簡單的執行單元讓計算結果不斷漸進,逐層推導複雜的運算,而不是設計一個複雜的執行過程。算法

純函數式編程語言

非純函數式編程語言

其餘函數式編程語言

歷史

函數式編程中最古老的例子莫過於1958年被創造出來的Lisp了。函數式編程更加現代一些的例子包括CleanClojureErlangHaskellMirandaScheme等。編程

雖然λ演算並不是設計來於計算機上運行,但它能夠被視做第一個函數式編程語言。1980年代末期,集函數式編程研究成果於大成的Haskell發佈。數據結構

基於JavaScript的某些開發理念強調函數式的實現方法。數據結構和算法

速度和空間上的顧慮

函數式編程常被認爲嚴重耗費CPU和存儲器資源。主因有二:編程語言

  • 在實現早期的函數式編程語言時並無考慮過效率問題。
  • 面向函數式編程特性(如保證函數參數不變性等)的獨特數據結構和算法。
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息