我在标准ML中有这个代码,我想知道在定义和应用程序时创建了什么环境和绑定,以及两者之间的区别。
fun boo boo =
let
type boo = int
val boo : boo = boo
val boo : { boo : boo } = { boo = boo }
in
# boo boo
end
我搜索过但无法得到准确答案,
提前致谢。
答案 0 :(得分:0)
我对SML还有点新鲜,但我想我已经有了这个:
fun boo boo (* 1 *) =
let
type boo (* 2 *) = int
val boo (* 3 *) : boo = boo (* 1 *)
val boo (* 4 *) : { boo (* 5 *) : boo } = { boo = boo } (* 6 *)
in
# boo boo (* 7 *)
end
我标记了每个 boo 以跟踪它们。他们是:
整体功能的类型为:int -> int