我需要一棵像这样的简单的树,带有所有的固定装置 -
type 'a Tree =
| Leaf of 'a
| Branch of 'a Tree list
一定有这样的东西可用,具有很好的添加、删除、映射、过滤、折叠功能等,但我找不到它。我什至没有看到 OCaml 中的一个我可以移植……我猜如果有必要我可以自己写一个。
编辑:将树的结构更改为更明显。
最佳答案
我认为困难在于没有人会使用一棵简单的树(比如 add Tree Tree
)。如果不指定更具体的树类型,您将不得不通过扫描、降低性能来实现所有这些方法。
此外,不可变树的就地更新非常昂贵,因为在典型设计中几乎没有共享数据结构。
最后,如果允许任何类型的回溯,每次都必须完全重写不可变树。
关于f# - 是否有开源的 F# 树数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11903595/