问题描述
我正在关注 OCaml 上的 wikibook,他们说整数类型可以这样构造:
type int = 0 | 1 | 2 | (* .... *) | -1 | -2 | (* ... *) ;;
后来,书中指出所有构造函数都是以大写开头的单词。还有特殊的构造函数,真假和整数,如 1、2、3。
那么,回到乌托邦。我输入以下内容:
type d = 0 | 1 | 2 ;;
我在 0 上出现语法错误。我错过了什么? 0 不是构造函数吗?
解决方法
正如您所说,您可以将整数定义为变体类型并不是真的。构造函数必须是以大写字母开头的标识符。但它是一种思考构造函数(和整数)的方式,在某些方面具有启发性。仅此而已。
顺便说一下,true
和 false
与 int 具有相同意义的构造函数非常相似。它们也不以大写字母开头。但将它们视为构造函数还是很有启发性的。