如何在 OCaml 中创建自定义数据类型的实例?

How do I create an instance of a custom data type in OCaml?

如果我有如下自定义数据类型 'triple',我将如何创建一个我可以使用的实例?

type triple = int * int * int

谢谢!

这是一个例子:

let my_instance = (1, 2, 3)

就其价值而言,您的类型不是新类型,它只是预先存在的类型的方便缩写,即 3 个整数的元组。没有构造函数的类型声明只是一个缩写,所以不是我所谓的“自定义”类型。

# ((1, 2, 3) : triple) = (1, 2, 3)
- : bool = true

我不确定这对您是否重要,但如果您需要一个与任何其他类型都不兼容的新类型,则需要一个构造函数。像这样:

type triple2 = T of int * int * int

然后你可以创建一个这样的实例:

let my_instance2 = T (1, 2, 3)

此新类型 triple2 与任何其他类型(例如 triple)不兼容:

# T (1, 2, 3) = (1, 2, 3)
Error: This expression has type 'a * 'b * 'c
       but an expression was expected of type triple2