【发布时间】:2019-05-25 03:20:48
【问题描述】:
在研究 OCaml 时,我发现这段代码我确信会抛出异常,但它返回的值却是 1。
let x = 1 in
let f y = x in
let x = 2 in
f 0;;
如果我按顺序考虑,好吧,x 取值 1。然后在较低的上下文中,我们说f y = x。由于没有定义y,我认为编译器应该在这里抛出异常。即使定义了y,我认为这可能会“在y 定义f”,如果它的行为类似于Haskell。但我不希望它为其他值定义f。
所以我似乎对它的工作原理有点困惑。
【问题讨论】:
标签: ocaml