我最近发现有一堆 immutable collections在.Net
F# 是一种专注于不变性的语言,它有自己的 immutable data types .有趣的是,我在任何关于 F# 的阅读中都没有看到对上述不可变集合的引用。
我想知道那些不可变集合和 F# 集合之间有什么关系吗?有什么使用指南吗?什么更好,F# Map<_,_>
或 ImmutableDictionary(TKey, TValue)
等等?
更新 也许我可以这样问:有没有人有在同一个项目中使用这两个库的经验或比较过它们的生产力?或者就是这样——首先是针对 C# 的,后者是针对 F# 的,仅此而已?
最佳答案
这种重复的原因很简单,System.Collections.Immutable
是最近添加的,旨在用于 C#,所以它的设计者不希望人们必须引用 FSharp.Core.dll
是可以理解的。 .
至于两者之间的选择,我会使用System.Collections.Immutable
在 C# 代码和旨在从 C# 中使用的 F# 代码中,以及 Microsoft.FSharp.Collections
在所有其他 F# 代码中。 AFAIK 在性能方面没有显着差异。典型的代码看起来像使用 S.C.I 和一系列 |>
的链式方法调用。使用 M.F.C 调用,但这实际上只是句法差异 - 从概念上讲,这是同一回事。
关于.net - Microsoft.FSharp.Collections 与 System.Collections.Immutable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21136344/