【发布时间】:2018-06-13 01:00:47
【问题描述】:
我正在研究 SML 中的参考文献。
我写了以下代码:
let
val f = (fn (s) => s := ref((!(!s)) + 2))
val x = ref (5)
val y = ref x
in
(f y ; !x)
end;
我正在尝试访问val it = 7 : int,尽管我的程序打印了val it = 5 : int。我不明白为什么。我确定问题出在f 函数中,但不明白为什么。
我正在尝试做的事情:f 函数应该将参数y 更新为ref(ref(7)),因此x 可能是ref(7)。但由于某种原因它不起作用。有什么问题?
【问题讨论】: