OCaml:为什么要使用自定义数据类型?

OCaml: Why use custom data types?

为什么我们使用自定义数据类型,例如: type vegetables = (string * classification)

我可以用吗?我可以创建一个 vegetables 列表吗?

这不是自定义数据类型,而只是一个类型别名,就像我们命名值一样,例如,

let pi = 3.14
let country = "USA"

我们可以为类型命名,以便于阅读和理解代码,例如,

type point = float * float
type range = float

type vegetables = (string * classification) 别名只是表示我们为 stringclassification 对命名为 vegetables。我们可以通过新名称或旧名称来引用此类型,这并不重要,尽管新名称更短且信息量更大。

您可以使用相同的语法 [<elt1>; <elt2>; ...; <eltN>] 在 OCaml 中构建任何类型的元素列表,并且在 OCaml 中使用以下语法创建元素对,例如 (<x>,<y>).

对列表还有一种特殊的语法,即[<x1>,<y1>; <x2>,<y2>; ...; <xN>,<yN>],例如

let locations : point list = [
  1.2, 3.4;
  5.6, 7.8;
  pi, 0.1;
]