【发布时间】:2013-11-06 12:25:13
【问题描述】:
我陷入了两难境地,拿下面用 ML 写的代码:
val x = 1
fun f(y) = x + y
val x = 2
val y = 3
val z = f (x + y)
z 的值为 6。现在,如果我在 python 中编写相同的代码,z 的值为 7。两种语言都声称(实际上教授这些语言的教师声称)具有词法/静态范围。但看起来只有 ML 通过使用在调用 f 时定义 f 函数时创建的环境来拥有它
任何指针将不胜感激!
谢谢!
【问题讨论】: