天天看點

什麼是高階函數

在數學 和計算機科學 中,高階函數 是至少滿足下列一個條件的函數 :

  • 接受一個或多個函數作為輸入
  • 輸出一個函數

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

在無類型 lambda 演算 ,所有函數都是高階的;在有類型 lambda 演算 (大多數函數式程式設計語言 都從中演化而來)中,高階函數一般是那些函數型別包含多于一個箭頭的函數。在函數式程式設計中,傳回另一個函數的高階函數被稱為Curry化 的函數。

在很多函數式程式設計語言中能找到的

map

函數是高階函數的一個例子。它接受一個函數 f 作為參數,并傳回接受一個清單并應用 f 到它的每個元素的一個函數。

高階函數的其他例子包括函數複合 、積分 和常量函數 λx .λy .x 。

繼續閱讀