ocaml说应该在camllight中运行的表达式中存在语法错误
我在看这篇文章:。在关于ML语言家族的一章中,有一些示例将与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 |
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不同的是,任何一种方式都可以