在函數(shù)式編程中,我們可以將函數(shù)當(dāng)作變量一樣自由使用。一個函數(shù)接收另一個函數(shù)作為參數(shù),這種函數(shù)稱之為高階函數(shù)(Higher-order Functions)。
看一個簡單的例子:
def func(g, arr):
return [g(x) for x in arr]
上面的代碼中,func 是一個高階函數(shù),它接收兩個參數(shù),第 1 個參數(shù)是函數(shù),第 2 個參數(shù)是數(shù)組,func 的功能是將函數(shù) g 逐個作用于數(shù)組 arr 上,并返回一個新的數(shù)組,比如,我們可以這樣用:
def double(x):
return 2 * x
def square(x):
return x * x
arr1 = func(double, [1, 2, 3, 4])
arr2 = func(square, [1, 2, 3, 4])
不難判斷出,arr1 是 [2, 4, 6, 8],arr2 是 [1, 4, 9, 16]。