OCaml 中的空树类型
Empty tree type in OCaml
我正在尝试创建一个表示空二叉树的类型(基本上,只有它的骨架)。这种类型的变量随后将通过模式匹配进行迭代。
我了解如何从标准类型(int
、string
等)的多态变体实例化一个固定的变体 - 请参阅下面的 int_tree
。但是,尚不清楚是否可以从多态变体创建一个空变体(下面的 empty_tree
行在编译过程中因 SyntaxError 而失败)。
代码如下:
type 'a binary_tree =
| Leaf of 'a
| Node of 'a binary_tree * 'a * 'a binary_tree
type int_tree = int binary_tree;;
type empty_tree = () binary_tree;;
()
不是类型,但它是类型 unit
.
的唯一值
写 () binary_tree
就像写 0 binary_tree
(而不是 int binary_tree
)。
你的空树应该是 unit binary_tree
.
类型
我正在尝试创建一个表示空二叉树的类型(基本上,只有它的骨架)。这种类型的变量随后将通过模式匹配进行迭代。
我了解如何从标准类型(int
、string
等)的多态变体实例化一个固定的变体 - 请参阅下面的 int_tree
。但是,尚不清楚是否可以从多态变体创建一个空变体(下面的 empty_tree
行在编译过程中因 SyntaxError 而失败)。
代码如下:
type 'a binary_tree =
| Leaf of 'a
| Node of 'a binary_tree * 'a * 'a binary_tree
type int_tree = int binary_tree;;
type empty_tree = () binary_tree;;
()
不是类型,但它是类型 unit
.
写 () binary_tree
就像写 0 binary_tree
(而不是 int binary_tree
)。
你的空树应该是 unit binary_tree
.