函数式编程
2023-02-18 15:29:14 时间
函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。
而函数式编程(请注意多了一个“式”字)——Functional Programming,虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算。
我们首先要搞明白计算机(Computer)和计算(Compute)的概念。
在计算机的层次上,CPU执行的是加减乘除的指令代码,以及各种条件判断和跳转指令,所以,汇编语言是最贴近计算机的语言。
而计算则指数学意义上的计算,越是抽象的计算,离计算机硬件越远。
对应到编程语言,就是越低级的语言,越贴近计算机,抽象程度低,执行效率高,比如C语言;越高级的语言,越贴近计算,抽象程度高,执行效率低,比如Lisp语言。
函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的,输出就是确定的,这种纯函数我们称之为没有副作用。而允许使用变量的程序设计语言,由于函数内部的变量状态不确定,同样的输入,可能得到不同的输出,因此,这种函数是有副作用的。
函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数!
Python对函数式编程提供部分支持。由于Python允许使用变量,因此,Python不是纯函数式编程语言。
相关文章
- 跟我学Python图像处理丨5种图像阈值化处理及算法对比
- Python图像处理丨图像缩放、旋转、翻转与图像平移
- 520,用Python定制你的《本草纲目女孩》
- 如何使用Python实现图像融合及加法运算?
- 跟我学Python图像处理丨掌握4种图像平滑算法
- 跟我学Python图像处理丨获取图像属性、兴趣ROI区域及通道处理
- Python图像处理丨OpenCV+Numpy库读取与修改像素
- 打基础丨Python图像处理入门知识详解
- Python一键转Jar包,Java调用Python新姿势!
- pip:带你认识一个 Python 开发工作流程中的重要工具
- 如何在windows下成功的编译和安装python组件hyperscan
- 教你一个快速视频处理的神器:Python moviepy
- 在Spark Scala/Java应用中调用Python脚本,会么?
- 教你如何在Spark Scala/Java应用中调用Python脚本
- 教你Python字符串的基本操作:拆分和连接
- 使用 Python Poetry 进行依赖管理
- 万字教你如何用 Python 实现线性规划
- 使用 scipy.fft 进行Fourier Transform:Python 信号处理
- Python enumerate():使用计数器简化循环
- Python 可以满足你任何 API 使用需求