函数是代码的一种封装形式,通过一层层的调用,可以将复杂任务拆解。这种分解的方式可称为面向过程的程序设计,而函数是面向过程编程(Procedure Oriented Programming)的基本单元。
函数式编程(Functional Programming)可以归为是面向过程编程,但思想更为抽象,接近数学计算。
我们知道汇编语言(Assembly Language)是面向机器的程序设计语言,属于低级语言,直接控制CPU运行。而高级语言更接近数学语言和自然语言,如C/C++/Python。对于高级编程语言,越低级的抽象程度低,越贴近计算机,执行效率高,如C语言;越高级的语言抽象程度高,越贴近计算,执行效率低,如Lisp语言。
函数式编程就是抽象程度很高的编程范式。
(1)纯函数:用纯粹的函数式编程语言编写的函数是没有变量的,输入输出确定,这种纯函数被称作没有副作用。
(2)带变量的函数:由于函数内部变量状态不确定,同样输入可能有不同输出。这种函数则是有副作用。
此外,函数式编程可以把函数本身作为参数传入另一个函数。
Python允许使用变量,不是纯函数式编程语言,但是对部分函数式编程提供支持。
高阶函数(Higher-order function),在数学上又称为算子或泛函。高阶函数可以对其他函数进行操作,接受函数作为参数或函数作为输出返回。
====================================================================
Python学习的内容参考
《Python编程:从入门到实践》-[美] Eric Matthes
《21天学通PYTHON》
莫烦Python
廖雪峰的Python教程
等