在一本函数式编程书中,作者提到了以下副作用。
我只是想知道如果它们是副作用,如何在不读取或写入文件的情况下编写纯函数程序。如果是,功能世界中实现这一目标的常用方法是什么?
谢谢,
穆罕默德
最佳答案
正确回答这个问题可能需要一整本书(不要太长)。这里的重点是函数式编程旨在将逻辑描述/表示与其实际的运行时解释分开。您的功能代码只是将(不运行)程序的效果表示为值,为您提供某种描述计算的抽象语法树。代码的不同部分(通常称为解释器)将采用这些值并懒惰地运行实际效果。那部分不起作用。
怎么可能写出一个在任何方面都有用的纯函数式程序?这不可能。纯函数式程序只会加热 CPU。它需要一个不纯的部分(解释器)来实际写入磁盘或网络。 There are several important advantages in doing it that way .纯函数部分易于测试(测试纯函数很容易),referentially transparent纯函数的性质使我们很容易 reason about your code locally ,使整个开发过程的错误更少,效率更高。它还提供 elegant ways to deal with traditionally obfuscated defensive code .
那么函数世界中实现副作用的常用方法是什么?如前所述,使用值表示它们,然后编写解释这些值的代码。可以在 in these blog post series 中找到对整个过程的非常好的解释。 .
关于functional-programming - 函数式编程的副作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38331690/