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' –