纯函数

没有副作用、输出完全由输入决定的函数,等价于数学函数的编程实现。

纯函数

编程中的纯函数(pure function)满足两个条件:

  1. 无副作用——不修改外部状态(不写文件、不改全局变量、不发网络请求)
  2. 确定性——同一输入永远返回同一输出(不依赖随机数、时间等外部状态)

这两条恰好对应数学函数的核心定义。因此可以说:数学函数就是编程世界里的纯函数

反例

python
# 不是纯函数:有副作用
count = 0
def f(x):
    global count
    count += 1
    return x * 2

# 不是纯函数:不确定
import random
def g(x):
    return x + random.random()

这两个在编程里合法,但都不满足数学函数的要求。