函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!
Python对函数式编程提供部分支持。由于Python允许使用变量,因此,Python不是纯函数式编程语言。
高阶函数
高阶函数英文叫Higher-order function。
变量可以指向函数123 f = abs-10) f(10
函数名也是变量
|
|
传入函数
一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。12def add(x, y, f): return f(x) + f(y)
|
|
map/reduce
Python内建了map()和reduce()函数。123456def f(x):return x * x ...1, 2, 3, 4, 5, 6, 7, 8, 9]) r = map(f, [ list(r)[1, 4, 9, 16, 25, 36, 49, 64, 81]
map()传入的第一个参数是f,即函数对象本身。由于结果r是一个Iterator,Iterator是惰性序列,因此通过list()函数让它把整个序列都计算出来并返回一个list。