Ocaml 使用局部变量声明全局变量
假设我想使用局部变量声明一个全局变量: 我能做到(1) 但现在如果我这样做(2) 似乎ocaml不理解这个语法,它停在;;,但我不明白为什么,因为(3) 工作,即使它是无用的Ocaml 使用局部变量声明全局变量,ocaml,Ocaml,假设我想使用局部变量声明一个全局变量: 我能做到(1) 但现在如果我这样做(2) 似乎ocaml不理解这个语法,它停在;;,但我不明白为什么,因为(3) 工作,即使它是无用的 第(2)点发生了什么?ocaml是如何分析这个表达式的?两种类型的lets之间的最大区别在于let。。。in…是一个表达式,但是letwithoutin不是。现在,在中的之后的部分让。。。in…必须是表达式,因此此处不允许使用inlesslet,只允许在模块的顶层使用 let y = let x = 1 in x + 1;
第(2)点发生了什么?ocaml是如何分析这个表达式的?两种类型的
let
s之间的最大区别在于let。。。in…
是一个表达式,但是let
withoutin
不是。现在,在中的之后的部分让。。。in…
必须是表达式,因此此处不允许使用in
lesslet
,只允许在模块的顶层使用
let y = let x = 1 in x + 1;;
let x = 1 in let y = x + 1;;
let x = 1 in 1;;