函数式编程--functional programming
可以归结到面向过程的程序设计,但其思想更接近数学计算。
对应到编程语言,就是越低级的语言,越贴近计算机,抽象程度低,执行效率高,比如C语言;越高级的语言,越贴近计算,抽象程度高,执行效率低,比如Lisp语言。
函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用。
而允许使用变量的程序设计语言,由于函数内部的变量状态不确定,同样的输入,可能得到不同的输出,因此,这种函数是有副作用的。
函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!
Python对函数式编程提供部分支持。由于Python允许使用变量,因此,Python不是纯函数式编程语言。
函数名其实就是指向函数的变量!
abs = 10 是可以赋值的 但是赋值以后不可执行abs(-10) 抛出
TypeError: 'int' object is not callable
def get(number):
return number;
abs = get;
print abs(-10)
说明内置的函数名也是可以指向新的函数的。
既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。
一个最简单的高阶函数:
def add(x, y, f):
return f(x) + f(y)
add(-5, 6, abs) = 11.
来源:oschina
链接:https://my.oschina.net/u/858272/blog/668501