3
我试图创建一个表示空的二叉树(基本上,只有它的骨架)的类型。然后这个类型的变量将被用模式匹配来迭代。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;;
虽然那棵树不会是空的,但包含单元类型的值,其中只有一个。 –
确实,真正空树需要改变数据结构。 – nefas
'type +'a tree = Leaf | 'binary_tree *'的节点a *'binary_tree' –