Ocaml 中的关键字“in”

问题描述

我不明白这段代码如何获得“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 的值 ...