複製鏈接
請複製以下鏈接發送給好友

高階函數

鎖定
高階函數(higher-order function),又稱算子(運算符)或泛函,包含多於一個箭頭的函數。
中文名
高階函數
外文名
higher-order function
別    名
算子(運算符)或泛函
函數型別
包含多於一個箭頭的函數
常見例子
微積分中的導數

目錄

高階函數定義

在數學和計算機科學中,高階函數是至少滿足下列一個條件的函數:
  • 接受一個或多個函數作為輸入
  • 輸出一個函數

高階函數數學

在數學中它們叫算子(運算符)或泛函。微積分中的導數就是常見的例子,因為它映射一個函數到另一個函數。

高階函數計算機科學

在無類型 lambda演算,所有函數都是高階的;在有類型 lambda演算(大多數函數式編程語言都從中演化而來)中,高階函數一般是那些函數型別包含多於一個箭頭的函數。在函數式編程中,返回另一個函數的高階函數被稱為柯里化的函數。
在很多函數式編程語言中能找到的 map 函數是高階函數的一個例子。它接受一個函數 f 作為參數,並返回接受一個列表並應用 f 到它的每個元素的一個函數。 [1] 

高階函數範例

高階函數的其他例子包括函數複合、積分和常量函數 λx.λy.x。 [1] 
這是一個Python的例子, 其中函式 g() 有一引數以及回傳一函數. 這個例子會打印 100 ( g(f,7)= (7+3)×(7+3) ).
def f(x):
return x + 3
def g(function, x):
return function(x) * function(x)
print g(f, 7)

高階函數參見

參考資料
  • 1.    Hindley, J. Roger; Meredith, David (1990), "Principal type-schemes and condensed detachment", Journal of Symbolic Logic, 55 (1): 90–105, doi:10.2307/2274956, JSTOR 2274956, MR 1043546