sou*_*ult 3 polymorphism ocaml variant
我正在尝试创建一个表示空二叉树的类型(基本上只是它的骨架).然后,这种类型的变量将通过模式匹配进行迭代.
我知道如何从实例化的标准型多态变异体(一个固定的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;;
Run Code Online (Sandbox Code Playgroud)
()
不是类型,但它是该类型的唯一值unit
.
写作() binary_tree
就像写作0 binary_tree
(而不是int binary_tree
).
你的空树应该是类型unit binary_tree
.