Syntax OCaml语法混乱
当我第一次开始使用in语句时,我认为它非常简单而且有意义。然而,这些代码示例让我质疑我对它们的理解程度Syntax OCaml语法混乱,syntax,functional-programming,ocaml,Syntax,Functional Programming,Ocaml,当我第一次开始使用in语句时,我认为它非常简单而且有意义。然而,这些代码示例让我质疑我对它们的理解程度 let fun1 x = let fun2 y = y + 1 in fun2(x);; val fun1 : int -> int = <fun> 这件事让我更加困惑,提出了更多的问题。我真的不知道如何解释这个。是sum1被宣布用于sum2吗?如果是这样,为什么中的像第一个示例中那样应用于外部函数而不是内部函数 如果您能帮助解释这些代码片段,我们将不胜感激 在语句中没有
let fun1 x = let fun2 y = y + 1 in fun2(x);;
val fun1 : int -> int = <fun>
这件事让我更加困惑,提出了更多的问题。我真的不知道如何解释这个。是sum1被宣布用于sum2吗?如果是这样,为什么中的像第一个示例中那样应用于外部函数而不是内部函数
如果您能帮助解释这些代码片段,我们将不胜感激 在
语句中没有。有let
形式的定义let[rec]pattern=expression{and pattern=expression}
和let
形式的表达式let[rec]pattern=expression{and pattern=expression}在expression
中(其中[]
表示“可选”而{}
表示“零或更多”)。因此,
中的只是let
表达式语法的一部分
是sum1被宣布用于sum2吗
否。sum2
定义为在sum1
中使用,就像在第一个示例中一样sum1i
只返回sum2
作为其结果。另一种不给返回的函数命名的写入方法是:
let sum1 i = fun j -> i + j
甚至:
let sum1 i j = i + j
let sum1 i j = i + j