函数与函数式的区别:
函数是面向程序的基本单元,函数式更接近于数学计算
计算与计算机的区别:
计算机层次上,CPU执行的是代码指令,以及条件判断和逻辑执行,所以汇编语言是最接近与计算机的语言
计算,指的是数学上的意义,越是抽象的计算,离计算机越远
所以对应到计算机上,就是越接近计算机的语言,抽象程度越低,执行效率越高,越贴近计算,抽象程度越高,执行效率越低
函数式是一种抽象程度很高的范式,特点就是允许函数本身作为参数传入另一个函数,还允许返回一个函数,纯函数式编程是没有变量的,因此任意一个函数只要输入是确定的,它的输出就是确定的,这种纯函数称为没有副作用的
Python对函数式编程提供部分支持,由于Python允许使用变量(变量是多变的,由于函数变量内部状态不确定,因此同样的输入可能有不同的输出,这种函数称为有副作用的),所以不是纯函数式编程语言
函数本身可以赋值给变量
#python 内置函数abs 取绝对值
print(abs(-10))
f= abs
print(f(-20))
一个函数接受另一个函数作为参数,则此函数称为高阶函数
#定义一个add函数
def add(x, y, a):
return a(x) + a(y)
定义一个取绝对值的函数
def f(x):
if x < 0:
return -x
else:
return x
把函数f本身赋值给变量a
print(add(-10, 20, f))
结果:30