我试图创建一个表示空二叉树的类型(基本上只是它的骨架)。然后,这种类型的变量将通过模式匹配进行迭代。
我理解如何为标准类型(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;;
答案 0 :(得分:5)
()
不是类型,但它是unit
类型的唯一值。
撰写() binary_tree
就像撰写0 binary_tree
(而不是int binary_tree
)。
您的空树应为unit binary_tree
类型。