OCaml 中的整数构造函数

问题描述

我正在关注 OCaml 上的 wikibook,他们说整数类型可以这样构造:

type int = 0 | 1 | 2 | (* .... *) | -1 | -2 | (* ... *) ;;

后来,书中指出所有构造函数都是以大写开头的单词。还有特殊的构造函数,真假和整数,如 1、2、3。

那么,回到乌托邦。我输入以下内容

type d = 0 | 1 | 2 ;;

我在 0 上出现语法错误。我错过了什么? 0 不是构造函数吗?

解决方法

正如您所说,您可以将整数定义为变体类型并不是真的。构造函数必须是以大写字母开头的标识符。但它是一种思考构造函数(和整数)的方式,在某些方面具有启发性。仅此而已。

顺便说一下,truefalse 与 int 具有相同意义的构造函数非常相似。它们也不以大写字母开头。但将它们视为构造函数还是很有启发性的。