Pointers 将一个引用设置为SML中的另一个引用
是否可以将一个引用更新为SML中的另一个引用?这可能是一个非常愚蠢的问题,但我似乎无法理解它。例如,考虑以下两个参考文献:Pointers 将一个引用设置为SML中的另一个引用,pointers,reference,functional-programming,sml,Pointers,Reference,Functional Programming,Sml,是否可以将一个引用更新为SML中的另一个引用?这可能是一个非常愚蠢的问题,但我似乎无法理解它。例如,考虑以下两个参考文献: val x1 = ref(NONE); val x2 = ref(NONE); (*update so that x1 = x2; returns true*) 如何将x1更新为等于x2。我不是说把x2指向x1的内容放进去,我想知道我是否可以将它们设置为相等,这样当我测试相等(eq-x1=x2)时,结果是真的 我想让它们指向一个新的内存位置 val z = NONE x
val x1 = ref(NONE);
val x2 = ref(NONE);
(*update so that x1 = x2; returns true*)
如何将x1更新为等于x2。我不是说把x2指向x1的内容放进去,我想知道我是否可以将它们设置为相等,这样当我测试相等(eq-x1=x2)时,结果是真的
我想让它们指向一个新的内存位置
val z = NONE
x1 := z
x2 := z
这不管用。我想我应该再复习一下SML中的参考资料。感谢您的帮助。我所知道的两个参考值相等的唯一方法是它们是否相同:
val x1 = ref NONE
val x2 = x1
将导致
x1=x2
为真。我所知道的两个参考值相等的唯一方法是如果它们相同:
val x1 = ref NONE
val x2 = x1
将导致
x1=x2
为真。我所知道的两个参考值相等的唯一方法是如果它们相同:
val x1 = ref NONE
val x2 = x1
将导致
x1=x2
为真。我所知道的两个参考值相等的唯一方法是如果它们相同:
val x1 = ref NONE
val x2 = x1
将导致
x1=x2
为真。在ML中没有变量赋值。因此,以两个不同值开头的两个变量永远不会相等ref NONE
计算为指向新的可变引用对象的指针;因此,对ref
的两个调用将计算指向不同对象的指针
这是一个参考,这不是真的相关。与任何其他类型相同:
val x1 = 2;
val x2 = 3;
(*update so that x1 = x2; returns true*)
x1=x2
永远不会为真。(至少对于x1
和x2
来说不是这样;如果你定义了一个新的x1
,那就另当别论了。)ML中没有变量赋值。因此,以两个不同值开始的两个变量永远不会相等ref NONE
计算为指向新的可变引用对象的指针;因此,对ref
的两个调用将计算指向不同对象的指针
这是一个参考,这不是真的相关。与任何其他类型相同:
val x1 = 2;
val x2 = 3;
(*update so that x1 = x2; returns true*)
x1=x2
永远不会为真。(至少对于x1
和x2
来说不是这样;如果你定义了一个新的x1
,那就另当别论了。)ML中没有变量赋值。因此,以两个不同值开始的两个变量永远不会相等ref NONE
计算为指向新的可变引用对象的指针;因此,对ref
的两个调用将计算指向不同对象的指针
这是一个参考,这不是真的相关。与任何其他类型相同:
val x1 = 2;
val x2 = 3;
(*update so that x1 = x2; returns true*)
x1=x2
永远不会为真。(至少对于x1
和x2
来说不是这样;如果你定义了一个新的x1
,那就另当别论了。)ML中没有变量赋值。因此,以两个不同值开始的两个变量永远不会相等ref NONE
计算为指向新的可变引用对象的指针;因此,对ref
的两个调用将计算指向不同对象的指针
这是一个参考,这不是真的相关。与任何其他类型相同:
val x1 = 2;
val x2 = 3;
(*update so that x1 = x2; returns true*)
x1=x2
永远不会为真。(至少不能使用x1
和x2
;如果你定义了一个新的x1
,那就另当别论了。)你为什么要这样做?你为什么要这样做的可能重复?你为什么要这样做的可能重复?你为什么要这样做的可能重复?你为什么要这样做的可能重复