gpt4 book ai didi

scala - 为什么 "reading from a file"不是纯函数?

转载 作者:行者123 更新时间:2023-12-04 13:06:56 25 4
gpt4 key购买 nike

在《Scala 函数编程》一书中,给出了几个“副作用”的例子,其中之一是:

  • 读取或写入文件

  • 我可以理解“写入文件”并不纯粹,因为它改变了环境。但为什么“读文件”不纯?它不会改变任何东西。

    看我的例子:
    val readFile: File => String = file => readingTheContentFromFile(file)

    最佳答案

    给定相同的输入,纯函数总是返回相同的值。否则它是基于副作用(如更改文件)。
    如果您从文件中读取,结果可能会更改,而不会更改给函数的参数。

    相关概念是“引用透明度”。这意味着您可以用函数将返回的结果替换一个函数调用和一组给定的参数。因此,从文件中读取不是引用透明的!

    关于scala - 为什么 "reading from a file"不是纯函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31377680/

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