我正在尝试创建一个表示空二叉树的类型(基本上,只是它的骨架(。然后,这种类型的变量将通过模式匹配进行迭代。
我了解如何为标准类型(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
类型。