高阶函数

维基百科,自由的百科全书
跳转至: 导航搜索

数学计算机科学中,高阶函数是至少满足下列一个条件的函数

  • 接受一个或多个函数作为输入
  • 输出一个函数

在数学中它们也叫做算子(运算符)或泛函微积分中的导数就是常见的例子,因为它映射一个函数到另一个函数。

无类型lambda演算,所有函数都是高阶的;在有类型lambda演算(大多数函数式编程语言都从中演化而来)中,高阶函数一般是那些函數型別包含多于一个箭头的函数。在函数式编程中,返回另一个函数的高阶函数被称为Curry化的函数。

在很多函数式编程语言中能找到的map函数是高阶函数的一个例子。它接受一个函数f作为参数,并返回接受一个列表并应用f到它的每个元素的一个函数。

高阶函数的其他例子包括函数复合积分和常量函数λxy.x

範例[编辑]

這是一個Python script的例子,其中函式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))

参见[编辑]