在C中,
每个变量都表示引用,我们可以通过运算符&
从变量中获取引用。例如如果int x=1
,则&x
是变量x
表示的参考。
每个变量都被评估为参考值。例如x
评估为1
。
在SML中,
每个变量都表示参考吗?例如。如果为val y = ref(3)
,则y
表示参考3
的参考。如果为let val x = 4
,则x
表示什么:4
或引用4
的引用?我们可以像C中的x
一样获得由变量&
表示的引用吗?
y
评估为参考ref 3
,x
评估为4
。
谢谢。
SML中的变量绑定不会引入参考。您无法在示例中获得对x
的引用。所有引用都必须显式创建,并且是一流的值。而且只有这样的引用是可变的,绑定不是。
换句话说,绑定和引用是SML中完全独立的功能。