0
我的教授今天向我们展示了这个代码,但我似乎无法理解它的结果:OCaml - 为什么函数没有改变它的输出?
# let a = 2;;
val a : int = 2
# let f = fun x -> fun y -> if x = y then a + 2 else a - 10;;
val : f 'a -> 'a -> int = <fun>
# f 1 (2 - 1);;
- : int = 4
# let a = 18;;
val a : int = 18
# f 1 (2 - 1);;
- : int = 4
???所以基本上,我期望看到这样的结果:
- : int = 20
为什么不是这个输出?
不要显示对学生的引用,你这个傻瓜! :-p – PatJ
@PatJ正是我的想法:-)我会编辑一个适当的警告 – Bergi
@PatJ是一个不纯粹的傻瓜在这种情况下比纯粹的傻瓜更糟? –