为什么在重新定义变量时使变量不可变并创建新条目?

问题描述 投票:0回答:2

在SML中,如果我正确的话,默认情况下变量是不可变的。因此,当我们尝试重新定义变量时,>

val y  = 100;
val y = 0.6;
y

环境将为y有两个条目。新条目将隐藏原始条目。效果与将原始条目中的值从100修改为0.6一样吗?

  • 如果原始条目是在函数调用之外创建的,而新条目是在函数调用中创建的,那么当函数调用返回时,我们可以访问原始条目。

  • 如果两个条目都是在同一“范围”中创建的,就像上面的示例一样,原始条目是否不可访问?

  • 有效地,在SML中,它与命令式语言(例如C)是否一样?重新定义变量时,使变量在SML中不可变并创建新条目有什么意义?

谢谢。

在SML中,如果我正确的话,默认情况下变量是不可变的。因此,当我们尝试重新定义变量val y = 100时;值y = 0.6; y环境将有y的两个条目。新条目将隐藏...

immutability sml
2个回答
1
投票

与我们将原始条目中的值从100修改为0.6的效果不一样


0
投票

修改kopecs的答案:

© www.soinside.com 2019 - 2024. All rights reserved.