【发布时间】:2019-11-25 20:39:09
【问题描述】:
我正在阅读我大学 Haskell 考试的过去论文,遇到了一个涉及树的问题,其中树类型是这样实现的:
data Tree a = Lf a -- leaf
| Tree a :+: Tree a -- branch
然后它继续概述可用于各种功能的示例树,例如:
((Lf 1 :+: Lf 2) :+: (Lf 3 :+: Lf 4))
我对这段代码的困惑是它如何在没有根元素概念的情况下表示一棵树。我的直觉认为这里表示的树看起来像这样:
/ \
/ \ / \
1 2 3 4
但是这样一棵树没有根元素,只有叶子,这对我来说肯定是错误的。在这段代码中,树实际上是如何表达的?
【问题讨论】:
标签: haskell data-structures tree