ocaml说应该在camllight中运行的表达式中存在语法错误

ocaml说应该在camllight中运行的表达式中存在语法错误,ocaml,ml,caml-light,Ocaml,Ml,Caml Light,我在看这篇文章:。在关于ML语言家族的一章中,有一些示例将与camllight一起运行。但是,在Debian存储库中,我没有找到任何包含camllight的包,因此我使用ocaml: $ ocaml OCaml version 4.01.0 本文中的示例代码运行良好,直到自定义类型定义部分中的示例代码: #type ('a,'b)sum = inl of 'a | inr of 'b;; 使用ocaml输出尝试此选项: # type ('a,'b)sum = inl of 'a |

我在看这篇文章:。在关于ML语言家族的一章中,有一些示例将与
camllight
一起运行。但是,在Debian存储库中,我没有找到任何包含
camllight
的包,因此我使用
ocaml

$ ocaml
    OCaml version 4.01.0
本文中的示例代码运行良好,直到自定义类型定义部分中的示例代码:

#type ('a,'b)sum = inl of 'a | inr of 'b;;
使用
ocaml
输出尝试此选项:

# type ('a,'b)sum = inl of 'a | inr of 'b;;
Error: Syntax error
带下划线的的第一个

为什么会出现语法错误?这是不是
camllight
的某些语言功能在
ocaml
中不存在?或者我可以以某种方式启用它吗?

此功能:

# type ('a,'b)sum = Inl of 'a | Inr of 'b;;
在OCaml中,您需要将构造函数的第一个字母大写

Edit1:我还注意到,在你链接的报纸上,后者的首字母大写,表示他的构造器。我还注意到在caml light文档中,它们也使用相同的符号。那可能是报纸上的错误

Edit2:我最终安装了caml light,在caml light中,大写第一个字母似乎并不重要。与OCaml不同的是,任何一种方法都是可以的。

这种方法都可以:

# type ('a,'b)sum = Inl of 'a | Inr of 'b;;
在OCaml中,您需要将构造函数的第一个字母大写

Edit1:我还注意到,在你链接的报纸上,后者的首字母大写,表示他的构造器。我还注意到在caml light文档中,它们也使用相同的符号。那可能是报纸上的错误

Edit2:我最终安装了caml light,在caml light中,大写第一个字母似乎并不重要。与OCaml不同的是,任何一种方式都可以