函數式編程(英語:functional programming)或稱函數程序設計、泛函編程,是一種編程範式,它將計算機運算視爲函數運算,而且避免使用程序狀態以及易變對象。其中,λ演算(lambda calculus)爲該語言最重要的基礎。並且,λ演算的函數能夠接受函數看成輸入(引數)和輸出(傳出值)。php
比起指令式編程,函數式編程更增強調程序執行的結果而非執行的過程,倡導利用若干簡單的執行單元讓計算結果不斷漸進,逐層推導複雜的運算,而不是設計一個複雜的執行過程。算法
函數式編程中最古老的例子莫過於1958年被創造出來的Lisp了。函數式編程更加現代一些的例子包括Clean、Clojure、Erlang、Haskell、Miranda、Scheme等。編程
雖然λ演算並不是設計來於計算機上運行,但它能夠被視做第一個函數式編程語言。1980年代末期,集函數式編程研究成果於大成的Haskell發佈。數據結構
基於JavaScript的某些開發理念強調函數式的實現方法。數據結構和算法
函數式編程常被認爲嚴重耗費CPU和存儲器資源。主因有二:編程語言