Ocaml变量范围如何工作?

时间:2012-05-14 12:41:25

标签: ocaml

我开始使用hickey book学习Ocaml,而且我坚持练习3.4,第9部分

let x x = x + 1 in x 2

操作的结果是3,但我不明白为什么?

1 个答案:

答案 0 :(得分:7)

当您编写let x x = ...时,您正在定义一个名为x的函数,该函数将名称x绑定到其参数。

由于您使用的是let而不是let rec,因此该函数不知道自己的名称,因此就其所知,唯一值得了解的x是通过的作为一个论点。

因此,当您使用x 2调用该函数时,它会将值2绑定到名称x并评估x+1,并将3作为结果