我在阅读我大学的Haskell考试过去的试卷时,遇到了一个涉及树的问题,其中树的类型被实现为:
data Tree a = Lf a -- leaf
| Tree a :+: Tree a -- branch
然后它继续概述了一个示例树,该树可与各种函数一起使用,例如:
((Lf 1 :+: Lf 2) :+: (Lf 3 :+: Lf 4))
我对这段代码感到困惑的地方在于它如何在没有根元素的情况下表示一棵树。我的直觉会认为在这里被表示的树看起来应该是这样的:
/ \
/ \ / \
1 2 3 4
但是这样的树将没有根元素,只有叶子节点,这对我来说显然是错误的。如何在这段代码中实际表示树形结构?