OCaml 类型声明和大写字母

RUs*_*512 3 ocaml compiler-errors

在 windows 环境中使用 ocamlc:

type splitter = {varname:string; count:int; mean:float}
Run Code Online (Sandbox Code Playgroud)

当我编译源代码时工作正常,但是:

type splitter = {Varname:string; count:int; mean:float}
Run Code Online (Sandbox Code Playgroud)

导致编译器抱怨(没有提供太多信息)

File "splitter.ml", line 1, characters 17-24:
Error: Syntax error
Run Code Online (Sandbox Code Playgroud)

同时,第二行与 OCaml 完美配合。这种行为有充分的理由吗?我没有在网上找到任何东西。

Jef*_*eld 5

传统上,FP 语言将大写标识符的使用限制在某些情况下。这使得代码更具可读性,并且实际上强制了某种编码风格。考虑到 FP 语言传统上不仅具有丰富的表达式子语言,而且还具有丰富的类型子语言,这也使解析更容易(我认为)。

因此,您不能对 OCaml 中的记录字段使用大写名称。

为了找到这个文档中,您可以在记录语法的定义开始第6.8节,然后观察一个字段名小写,IDENT6.3节