gpt4 book ai didi

functional-programming - 函数式编程的副作用

转载 作者:行者123 更新时间:2023-12-04 07:34:23 25 4
gpt4 key购买 nike

在一本函数式编程书中,作者提到了以下副作用。

  • 修改变量
  • 就地修改数据结构
  • 在对象上设置字段
  • 抛出异常或因错误而停止
  • 打印到控制台或读取用户输入
  • 读取或写入文件
  • 在屏幕上绘图

  • 我只是想知道如果它们是副作用,如何在不读取或写入文件的情况下编写纯函数程序。如果是,功能世界中实现这一目标的常用方法是什么?

    谢谢,
    穆罕默德

    最佳答案

    正确回答这个问题可能需要一整本书(不要太长)。这里的重点是函数式编程旨在将逻辑描述/表示与其实际的运行时解释分开。您的功能代码只是将(不运行)程序的效果表示为值,为您提供某种描述计算的抽象语法树。代码的不同部分(通常称为解释器)将采用这些值并懒惰地运行实际效果。那部分不起作用。

    怎么可能写出一个在任何方面都有用的纯函数式程序?这不可能。纯函数式程序只会加热 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/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com