Skip to content
On this page

纯函数


标签:Computer/lang  

纯函数指的是满足以下两个条件的函数:

  1. 给定相同的输入,函数总是返回相同的输出。
  2. 在执行过程中没有副作用,也不依赖于程序执行海外的数据状态。

第一个条件保证了函数的输入和输出可以预测,有助于程序的可靠性和可维护性,使得函数可以被复用和测试。

第二个条件确保了程序的输出仅取决于输入,不会对外部环境产生任何影响。也就是说,纯函数在执行过程中不能修改外部数据状态,如全局变量、文件、数据库、网络等等,因此它们没有涉及这些数据状态的锁定操作、IO 操作和系统调用等副作用。

纯函数是构建函数式编程模型的核心特性之一,它可使代码更加简单、可读性更高、可维护性更强。由于纯函数对外部数据状态没有依赖,它们还有助于并发编程,因为多个线程之间不会互相干扰状态。

在 Haskell 中,所有的函数都被视为纯函数,这也是 Haskell 成为纯函数式编程语言的一个原因。

Last updated: