函数式编程--functional programming编程
能够归结到面向过程的程序设计,但其思想更接近数学计算。编程语言
对应到编程语言,就是越低级的语言,越贴近计算机,抽象程度低,执行效率高,好比C语言;越高级的语言,越贴近计算,抽象程度高,执行效率低,好比Lisp语言。函数式编程
函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,所以,任意一个函数,只要输入是肯定的,输出就是肯定的,这种纯函数咱们称之为没有反作用。函数
而容许使用变量的程序设计语言,因为函数内部的变量状态不肯定,一样的输入,可能获得不一样的输出,所以,这种函数是有反作用的。设计
函数式编程的一个特色就是,容许把函数自己做为参数传入另外一个函数,还容许返回一个函数!code
Python对函数式编程提供部分支持。因为Python容许使用变量,所以,Python不是纯函数式编程语言。get
函数名其实就是指向函数的变量!数学
abs = 10 是能够赋值的 可是赋值之后不可执行abs(-10) 抛出io
TypeError: 'int' object is not callable
def get(number):
return number;
abs = get;
print abs(-10)function
说明内置的函数名也是能够指向新的函数的。
既然变量能够指向函数,函数的参数能接收变量,那么一个函数就能够接收另外一个函数做为参数,这种函数就称之为高阶函数。
一个最简单的高阶函数:
def add(x, y, f): return f(x) + f(y)
add(-5, 6, abs) = 11.