高阶函数

在函数式编程中,我们可以将函数当作变量一样自由使用。一个函数接收另一个函数作为参数,这种函数称之为高阶函数(Higher-order Functions)

看一个简单的例子:

  1. def func(g, arr):
  2. return [g(x) for x in arr]

上面的代码中,func 是一个高阶函数,它接收两个参数,第 1 个参数是函数,第 2 个参数是数组,func 的功能是将函数 g 逐个作用于数组 arr 上,并返回一个新的数组,比如,我们可以这样用:

  1. def double(x):
  2. return 2 * x
  3. def square(x):
  4. return x * x
  5. arr1 = func(double, [1, 2, 3, 4])
  6. arr2 = func(square, [1, 2, 3, 4])

不难判断出,arr1 是 [2, 4, 6, 8],arr2 是 [1, 4, 9, 16]。

小结

  • 可接收其他函数作为参数的函数称为高阶函数。