高阶函数

在数学和计算机科学中，高阶函数是至少满足下列一个条件的函数：
接受一个或多个函数作为输入
输出一个函数
在数学中它们也叫做算子（运算符）或泛函。微积分中的导数就是常见的例子，因为它映射一个函数到另一个函数。

在无类型lambda演算，所有函数都是高阶的；在有类型lambda演算中，高阶函数一般是那些函數型別包含多于一个箭头的函数。在函数式编程中，返回另一个函数的高阶函数被称为Curry化的函数。

一般性例子
在很多函数式编程语言中能找到的map函数是高阶函数的一个例子。它接受一个函数f作为参数，并返回接受一个列表并应用f到它的每个元素的一个函数。高阶函数的其他例子包括:
 常量函数λx.λy.x。
 排序函数，接受一个比较函数作为参数。
 filter函数
 fold函数
 函数
 
 积分
 回调函数
 蒙塔古文法

範例
這是一個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)
下列是Scheme語言的例子，函數g()有一引數以及回傳一函數。函數a()取得一值並加上7，再回傳，（例如a(3)=10）。
(define(g x)
  (lambda (y) (+ x y)))
(define a (g 7))
(display (a 3))

注释

参见
泛函分析
组合子逻辑
高阶逻辑

Lambda演算