如果允许全局变量,纯函数式语言是否会失去其纯净性?我的意思是说拥有全局变量会影响语言的参照透明性吗?
由于价值语义,我想不是,但我不确定,想知道其他人的想法。
在纯函数式语言中,“变量”的含义不同于命令式语言中通常的含义。可以在给定范围内重新分配它不是可变的,而是每次它进入范围都可以具有不同的值。但在该示波器的整个生命周期中,它保持不变。例如,在函数中
f x y = x + y
x
并且y
是在f
应用到变量时会绑定的变量。一旦绑定,它们就不会在该调用的范围内更改,它们只是在某个时刻超出范围。其他调用将绑定x
并y
具有不同的值。这就是功能变量“变化”的意义,它更接近(某些人可能说相同)变量的原始数学含义。
那么,您的问题是:全局变量会破坏纯度吗?不,因为全局变量(从不会超出范围)实际上是常量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句