纯函数语言中的全局变量

吉姆·古道尔

如果允许全局变量,纯函数式语言是否会失去其纯净性?我的意思是说拥有全局变量会影响语言参照透明性吗?

由于价值语义,我想不是,但我不确定,想知道其他人的想法。

汤姆·克罗基特

在纯函数式语言中,“变量”的含义不同于命令式语言中通常的含义。可以在给定范围内重新分配它不是可变的,而是每次它进入范围都可以具有不同的值。但在该示波器的整个生命周期中,它保持不变。例如,在函数中

f x y = x + y

x并且y是在f应用到变量时绑定的变量一旦绑定,它们就不会在该调用的范围内更改,它们只是在某个时刻超出范围。其他调用将绑定xy具有不同的值。这就是功能变量“变化”的意义,它更接近(某些人可能说相同)变量的原始数学含义。

那么,您的问题是:全局变量会破坏纯度吗?不,因为全局变量(从不会超出范围)实际上是常量

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

金属着色语言中的全局变量

来自分类Dev

面向对象语言中的全局变量

来自分类Dev

函数访问全局变量

来自分类Dev

从函数更新全局变量

来自分类Dev

每个函数的全局变量

来自分类Dev

从函数修改全局变量

来自分类Dev

全局变量不是全局变量 - 仅在函数内

来自分类Dev

类函数内部的函数全局变量

来自分类Dev

生成函数和全局变量

来自分类Dev

jQuery更改函数内部的全局变量

来自分类Dev

如何通过函数更改全局变量?

来自分类Dev

PHP在函数中声明全局变量

来自分类Dev

异步函数中的Javascript全局变量?

来自分类Dev

在python函数中使用全局变量

来自分类Dev

将全局变量传递给函数

来自分类Dev

探测全局变量以调用内部函数

来自分类Dev

通过函数设置全局变量

来自分类Dev

Javascript:匿名函数,访问全局变量

来自分类Dev

Javascript避免函数之间的全局变量

来自分类Dev

在函数JS中更改全局变量

来自分类Dev

确保函数不使用全局变量

来自分类Dev

全局变量未在函数中识别

来自分类Dev

Javascript函数更改全局变量(数组)

来自分类Dev

Python:导入的函数访问全局变量

来自分类Dev

封装在函数中的全局变量

来自分类Dev

函数内部的Python全局变量

来自分类Dev

不使用全局变量的迭代函数

来自分类Dev

Python修改函数内部的全局变量

来自分类Dev

Nest函数更新全局变量Javascript