![28e0a1032f1017e91cb392df0ba25d39.png](https://img-blog.csdnimg.cn/img_convert/28e0a1032f1017e91cb392df0ba25d39.png)
函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数。
Python对函数式编程提供部分支持。由于Python允许使用变量,因此,Python不是纯函数式编程语言。
高阶函数
-变量可以指向函数
-函数名也是变量
-传入函数
函数可以接收另一个函数作为参数,这种函数就称之为高阶函数,eg:
def add(x, y, f):
return f(x) + f(y)
map/reduce
map()函数接收两个参数,一个是函数,一个是iteration,map将传入的函数一次作用到序列的每个元素,并把结果作为新的iteration返回。eg:
def f(x):
return x * x
r = map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
list(r) #iteration是惰性序列,通过list函数把整个序列都计算出来并返回一个list
[1, 4, 9, 16, 25, 36, 49, 64, 81]
再看reduce的用法。reduce把一个函数作用在一个序列[x