标签: ocaml
我开始使用hickey book学习Ocaml,而且我坚持练习3.4,第9部分
let x x = x + 1 in x 2
操作的结果是3,但我不明白为什么?
3
答案 0 :(得分:7)
当您编写let x x = ...时,您正在定义一个名为x的函数,该函数将名称x绑定到其参数。
let x x = ...
x
由于您使用的是let而不是let rec,因此该函数不知道自己的名称,因此就其所知,唯一值得了解的x是通过的作为一个论点。
let
let rec
因此,当您使用x 2调用该函数时,它会将值2绑定到名称x并评估x+1,并将3作为结果
x 2
2
x+1