f# - 是否有开源的 F# 树数据结构?

标签 f# tree immutability

我需要一棵像这样的简单的树,带有所有的固定装置 -

type 'a Tree =
    | Leaf of 'a
    | Branch of 'a Tree list

一定有这样的东西可用,具有很好的添加、删除、映射、过滤、折叠功能等,但我找不到它。我什至没有看到 OCaml 中的一个我可以移植……我猜如果有必要我可以自己写一个。

编辑:将树的结构更改为更明显。

最佳答案

我认为困难在于没有人会使用一棵简单的树(比如 add Tree Tree )。如果不指定更具体的树类型,您将不得不通过扫描、降低性能来实现所有这些方法。

此外,不可变树的就地更新非常昂贵,因为在典型设计中几乎没有共享数据结构。

最后,如果允许任何类型的回溯,每次都必须完全重写不可变树。

关于f# - 是否有开源的 F# 树数据结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11903595/

相关文章:

types - 如何在 F# 中输入类型转换?

F# 元组、System.Tuple 和集合 - 类型约束不匹配?

algorithm - 建立一个特定的左派树?

architecture - 应用架构 : Problem with Mutable/Immutable reference

f# - Roslyn 能够解析和编译 F# 代码吗?

c# - F# 异步 lambda 与 C# 异步模型互操作

haskell - "tree traversal"将节点组合到根到底是什么抽象?

haskell - 在 Haskell 中转换一棵树

python - 我如何证明该函数在 Python 中是可变的?

java - 回收不可变字符串的第一个引用