ocaml - OCaml 中的整数构造函数

标签 ocaml

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

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

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

那么,回到utop。我输入以下内容:

type d = 0 | 1 | 2 ;;

我在 0 上遇到语法错误。我缺少什么? 0不是一个构造函数吗?

最佳答案

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

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

关于ocaml - OCaml 中的整数构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67100724/

相关文章:

haskell - GADT 提供了什么是 OOP 和泛型无法做到的?

.net - F# 可以更新类中的不可变绑定(bind)(创建一个更改了指定绑定(bind)的新对象吗?)

function - OCaml - 给出类型为 (int -> int) -> int 的函数

tree - 树描述的语法示例(lex/yacc)

syntax-error - ocaml中的二进制搜索树中的语法错误

ocaml - 多态变体和构造函数

functional-programming - 如何在 OCaml 中写入 `result?1:0`?

以集合为顶点的图

ocaml - 如何使用List.fold_left?

recursion - OCaml 中的匿名递归函数