Functional programming 副作用:修改局部变量是外部影响还是内部影响?

Functional programming 副作用:修改局部变量是外部影响还是内部影响?,functional-programming,side-effects,pure-function,Functional Programming,Side Effects,Pure Function,我正在学习函数式编程的副作用。我知道外部效应是在功能之外可以观察到的效应,而内部效应是从外部看不到的。我想知道修改局部变量是外部影响还是内部影响 由于局部变量只能在函数内部访问,外部世界看不到,因此我认为修改局部变量是内部效应的一个例子,因为外部世界无法观察到 然而,我不确定我的推理是否正确。任何见解都将受到赞赏。视情况而定 只要所讨论的函数总是为相同的输入返回相同的值,那么修改的局部变量就是内部变量:调用者无法判断是否修改了局部状态。但是,如果修改后的局部变量存储在闭包中,并且函数根据该局部变

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

由于局部变量只能在函数内部访问,外部世界看不到,因此我认为修改局部变量是内部效应的一个例子,因为外部世界无法观察到

然而,我不确定我的推理是否正确。任何见解都将受到赞赏。

视情况而定

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

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

这要看情况而定

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

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