【问题标题】:Side-effects: Is modifying local variables an external or internal effect?副作用:修改局部变量是外部影响还是内部影响?
【发布时间】:2019-07-26 08:30:14
【问题描述】:

我正在学习函数式编程中的副作用。我知道外部效应是在函数之外可以观察到的效应,而内部效应是从外部看不到的。我想知道修改局部变量是外部影响还是内部影响。

由于局部变量只能在函数内部访问,而对外界不可见,所以我认为修改局部变量是内部效应的一个例子,因为它对外界是不可观察的。

但是,我不确定我的推理是否正确。任何见解都值得赞赏。

【问题讨论】:

    标签: functional-programming side-effects pure-function


    【解决方案1】:

    视情况而定。

    只要所讨论的函数总是为相同的输入返回相同的值,那么修改的局部变量就是内部的:调用者无法判断局部状态是否被修改。但是,如果修改后的局部变量存储在闭包中,并且函数根据该局部变量的状态返回不同的值,那么即使调用者不能直接观察关闭的 over 变量,副作用也是外部的。

    至于修改局部变量是否是一个好主意,好吧,我不是纯粹主义者,但大多数支持不变性的论点仍然适用于局部变量和全局变量。另一方面,在一个简短、清晰的函数中,为了避免突变而扭曲代码似乎有点矫枉过正。这有点依赖于语言。使用您的最佳判断。

    【讨论】:

      猜你喜欢
      • 2017-12-03
      • 2019-07-23
      • 2013-12-30
      • 2012-11-05
      • 1970-01-01
      • 2023-02-08
      • 1970-01-01
      • 2012-10-06
      • 1970-01-01
      相关资源
      最近更新 更多