纯函数
没有副作用、输出完全由输入决定的函数,等价于数学函数的编程实现。
纯函数
编程中的纯函数(pure function)满足两个条件:
- 无副作用——不修改外部状态(不写文件、不改全局变量、不发网络请求)
- 确定性——同一输入永远返回同一输出(不依赖随机数、时间等外部状态)
这两条恰好对应数学函数的核心定义。因此可以说:数学函数就是编程世界里的纯函数。
反例
python
# 不是纯函数:有副作用
count = 0
def f(x):
global count
count += 1
return x * 2
# 不是纯函数:不确定
import random
def g(x):
return x + random.random()
这两个在编程里合法,但都不满足数学函数的要求。