python是函數語言程式設計嗎

cnnbull發表於2021-09-11

python是函數語言程式設計嗎

函式是Python內建支援的一種封裝,我們透過把大段程式碼拆成函式,透過一層一層的函式呼叫,就可以把複雜任務分解成簡單的任務,這種分解可以稱之為程式導向的程式設計。函式就是程式導向的程式設計的基本單元。

而函數語言程式設計(請注意多了一個“式”字)——Functional Programming,雖然也可以歸結到程式導向的程式設計,但其思想更接近數學計算。

我們首先要搞明白計算機(Computer)和計算(Compute)的概念。

在計算機的層次上,CPU執行的是加減乘除的指令程式碼,以及各種條件判斷和跳轉指令,所以,組合語言是最貼近計算機的語言。

而計算則指數學意義上的計算,越是抽象的計算,離計算機硬體越遠。

對應到程式語言,就是越低階的語言,越貼近計算機,抽象程度低,執行效率高,比如C語言;越高階的語言,越貼近計算,抽象程度高,執行效率低,比如Lisp語言。

函數語言程式設計就是一種抽象程度很高的程式設計正規化,純粹的函數語言程式設計語言編寫的函式沒有變數,因此,任意一個函式,只要輸入是確定的,輸出就是確定的,這種純函式我們稱之為沒有副作用。而允許使用變數的程式設計語言,由於函式內部的變數狀態不確定,同樣的輸入,可能得到不同的輸出,因此,這種函式是有副作用的。

函數語言程式設計的一個特點就是,允許把函式本身作為引數傳入另一個函式,還允許返回一個函式!

Python對函數語言程式設計提供部分支援。由於Python允許使用變數,因此,Python不是純函數語言程式設計語言。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2524/viewspace-2836524/,如需轉載,請註明出處,否則將追究法律責任。

相關文章