OCaml中的空树类型

时间:2017-07-17 12:49:25

标签: polymorphism ocaml variant

我试图创建一个表示空二叉树的类型(基本上只是它的骨架)。然后,这种类型的变量将通过模式匹配进行迭代。

我理解如何为标准类型(intstring等)实例化固定的多态变体 - 请参阅下面的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;;  

1 个答案:

答案 0 :(得分:5)

()不是类型,但它是unit类型的唯一值。

撰写() binary_tree就像撰写0 binary_tree(而不是int binary_tree)。

您的空树应为unit binary_tree类型。