什么是纯函数的定义?

在数学和计算机科学中,纯函数(Pure Function)的定义如下:

数学定义:

一个纯函数是一个数学函数,它满足以下两个条件:

1. 对于相同的输入参数,总是产生相同的输出结果(无副作用)。

2. 函数的执行不产生可观察的副作用,即函数的执行不改变外部状态,不依赖于外部状态的变化。

计算机科学定义:

在计算机科学中,纯函数通常指的是一个函数,它符合以下特性:

1. 确定性(Deterministic):给定相同的输入,总是返回相同的输出。

2. 无副作用(No Side Effects):函数的执行不修改外部状态,不进行I/O操作(如读写文件、打印到控制台、修改全局变量等),也不依赖于外部状态(如当前时间、随机数生成器等)。

纯函数的特点使得它们在程序设计中非常有用,因为它们更容易理解和测试。在函数式编程中,纯函数是核心概念之一,因为它们有助于减少程序中的不可预测性和复杂性。

以下是一个纯函数的简单示例(以JavaScript代码为例):

```javascript

function add(a, b) {

return a + b;

}

```

这个 `add` 函数是纯函数,因为它:

- 对于相同的输入 `a` 和 `b`,总是返回相同的输出 `a + b`。

- 不修改任何外部状态,也不依赖于外部状态。

相比之下,以下函数不是纯函数:

```javascript

let counter = 0;

function increment() {

counter += 1;

return counter;

}

```

这个 `increment` 函数不是纯函数,因为它:

- 修改了外部变量 `counter` 的状态。

- 每次调用时,即使输入相同(实际上没有输入),返回的输出也可能不同,因为它依赖于外部状态 `counter`。