本文会带来什么
- 高阶函数
- 返回函数
- 匿名函数
- 装饰器
- 偏函数
什么是函数式编程?
函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用。而允许使用变量的程序设计语言,由于函数内部的变量状态不确定,同样的输入,可能得到不同的输出,因此,这种函数是有副作用的。
函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!
Python对函数式编程提供部分支持。由于Python允许使用变量,因此,Python不是纯函数式编程语言。
1.高阶函数
1 | # --------------高阶函数 |
2.map()
mapReduce 是一个比较大的话题,据说是google 三宝之一,感兴趣同学可以 自行 搜索
1 | # --------------map() |
3.reduce()
reduce把一个函数作用在一个序列[x1, x2, x3, …]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效果就是:
1 reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
1 | # --------------reduce() |
4.filter()
1 | # --------------filter() |
5.sorted()
排序算法1
2
3
4
5
6
7
8
9# --------------sorted()
# 一个参数
L = [-1,-2,0,1,2,-4]
print(sorted(L))
# 结果: [-4, -2, -1, 0, 1, 2]
# 两个参数,用函数先行处理, key =
print(sorted(L,key=abs))
# 结果: [0, -1, 1, -2, 2, -4]
6.返回函数
1 | # 闭包 |
7.匿名函数
1 | # --------------匿名函数 |
8.装饰器
1 | # --------------装饰器 |
9.偏函数
1 | # --------------偏函数 |