我需要一个像这样的简单树,所有的修复 -
type 'a Tree =
| Leaf of 'a
| Branch of 'a Tree list
必须有这样的东西已经有很好的添加,删除,地图,过滤器,折叠功能等,但我找不到它。我甚至没有看到OCaml的一个我可以移植...猜猜我可以在必要时自己写一个。
编辑:更改树的结构更明显。
答案 0 :(得分:1)
我认为困难在于没有人会使用简单的树(比如说add Tree Tree
)。如果不指定更具体的树类型,则必须通过扫描,坦克性能来实现所有这些方法。
此外,不可变树的更新非常昂贵,因为典型设计中的共享数据结构很少。
最后,如果允许任何类型的反向跟踪,每次都必须完全重写不可变树。