函数式编程是一种编程范式,还有命令式编程。函数式编程的特点是:
1)函数作为第一等公民,可以作为参数、返回值,还可以赋值给其他变量等等;
2)函数式编程语言只有“表达式”(expression),没有“语句”(statement);表达式是单纯的运算过程,有返回值,而语句执行某种操作,没有返回值。
3)函数式编程没有副作用;所谓副作用即为这个函数的值,受除了输入参数的影响,还收到其他变量的影响,也即函数调用的次数和地点不同,返回值可能不同。
Python支持函数式编程,同时,它的函数具有副作用,所以Python语言不是函数式语言。
以map()函数为例,展示Python的函数式编程威力。map函数带两个参数,一个是函数名,另一个是这个函数将要左右的参数。
>>> def f(x):
return x * x
#定义f, 进行平方运算;
>>> map(f, [1, 2, 3, 4])
[1, 4, 9, 16]
map将f分别作用到1、2、3和4上并将它们的返回结果组合成list作为map函数的返回值。这里map的第一个参数用f表示某个方程,它的名字是f。而f(1),表示函数调用,并且传递给f的实参为1。
同时函数可以作为返回值: