问题描述
我不明白这段代码如何获得“z”的值:
let outer x y =
let inner z = x + z
in inner y ;;
一般来说,当我们有多个函数时,我无法理解“in”子句是如何工作的。
解决方法
注意 let inner z = x + z
等价于(或语法糖)
let inner = fun z -> x + z
请参阅 Ocaml 手册的 the Chapter 1 - the core language 和部分 §7.7 Expressions。
因此您的 inner y
函数应用程序(在最后一行)将 z
绑定到 y
的值 ...