是OCaml中的整数构造函数

是OCaml中的整数构造函数,ocaml,Ocaml,我遵循OCaml上的规则,他们说整数类型可以这样构造: type int = 0 | 1 | 2 | (* .... *) | -1 | -2 | (* ... *) ;; 后来,这本书指出,所有构造函数都是以大写字母开头的单词。还有一些特殊的构造函数,真假和整数,比如1,2,3 那么,回到乌托普。我键入以下内容: type d = 0 | 1 | 2 ;; 我在0上得到一个语法错误。我错过了什么?0不是一个构造函数吗?正如您所说,您不能将整数定义为变量类型。构造函数必须是以大写字母开头的标

我遵循OCaml上的规则,他们说整数类型可以这样构造:

type int = 0 | 1 | 2 | (* .... *) | -1 | -2 | (* ... *) ;;
后来,这本书指出,所有构造函数都是以大写字母开头的单词。还有一些特殊的构造函数,真假和整数,比如1,2,3

那么,回到乌托普。我键入以下内容:

type d = 0 | 1 | 2 ;;

我在0上得到一个语法错误。我错过了什么?0不是一个构造函数吗?

正如您所说,您不能将整数定义为变量类型。构造函数必须是以大写字母开头的标识符。但这是一种思考构造函数(和int)的方式,在某些方面是很有启发性的。就这些


顺便说一句,
true
false
在与int相同的意义上与构造函数非常相似。它们也不是以大写字母开头的。但将他们视为构造器是很有启发性的。

好的,我理解。快速跟进以确保我完全理解。在我的d示例中,我应该说:type d=Zero | One | Two;;当然,这是有效的OCaml,它给了你维基百科想要达到的想法。想象一下,如果您以这种方式定义了所有整数(
onethousandredtwo
等等),然后定义了用于添加、mulltipling等的函数。您可以使用这些(空)构造函数非常接近地再现整数的行为。