OCaml - 创建自定义类型的自定义类型

时间:2015-08-03 05:17:30

标签: types constructor ocaml

如果我有数据类型标识和人,我该如何使用它们?

type identification = Name of string
| SS of int * int;;

type person = Personal_info of identification;;

如何制作有身份证明的人?如何在其中构造具有这些类型的变量..?

类似的东西:

person1 = Personal_info (Name = "Cody") (SS = (231,4534));;
val person1 : person = .....

1 个答案:

答案 0 :(得分:4)

您的identification类型指定 名称或社会安全号码。在我看来,你想拥有它们。为此你应该使用记录类型:

type ident = { name: string; ss: int * int }

由于您的person类型只有一个变体,因此它是多余的(并不是说它在某些情况下无用)。

以下是ident类型的值:

{ name = "Cody"; ss = (231, 4534) }

如果你真的想使用person类型,它看起来像这样:

type person = PI of ident

此类型的值如下所示:

PI { name = "Cody"; ss = (231, 4534) }