我正在关注wikibook在 OCaml 上,他们说整数类型可以这样构造:
type int = 0 | 1 | 2 | (* .... *) | -1 | -2 | (* ... *) ;;
后来,书中指出所有构造函数都是以大写字母开头的单词。还有特殊的构造函数,true false 和整数,如 1、2、3。
那么,回到utop。我输入以下内容:
type d = 0 | 1 | 2 ;;
我在 0 上遇到语法错误。我缺少什么? 0不是一个构造函数吗?
最佳答案
正如您所说,您可以将整数定义为变体类型,这实际上并不正确。构造函数必须是以大写字母开头的标识符。但这是一种思考构造函数(和整数)的方式,在某些方面具有启发性。仅此而已。
顺便说一句,true
和 false
在与整数相同的意义上与构造函数非常相似。它们也不以大写字母开头。但将它们视为构造函数是有启发性的。
关于ocaml - OCaml 中的整数构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67100724/