相关疑难解决方法(0)

`ImmutableSortedSet`和fsharp`Set`有什么区别?

BCL推出了一组不可变集合

我想知道ImmutableSortedSet和原生FSharp有Set什么区别?似乎两者的性能签名是相似的.我也看到SortedSet了一个实现为红黑树的地方,所以我猜ImmutableSortedSet也是如此.

fsharp的内部实现是什么map?这里声称是红黑树还是AVL树在这里找到了?

另外,为什么MSDN文档没有说清楚库集合的实际数据结构是什么?我知道这些是实施细节,即将改变.我的观点是,如果他们不想将库数据类型绑定到某种类型的众所周知的数据结构,他们至少应该在复杂性方面提供所有方法性能签名的总结?

.net c# f# binary-search-tree data-structures

10
推荐指数
2
解决办法
887
查看次数

为什么F#Set需要IComparable?

所以我试图将F#Set用作哈希表.但是我的元素类型没有实现IComparable接口(尽管它实现了IEquatable).我得到一个错误,说因为比较约束而不允许构造.通过进一步阅读,我发现F#Set是使用二叉树实现的,这会产生插入原因O(log(n)).这对我来说很奇怪,为什么Set结构是这样设计的?

编辑:所以我了解到SetF#实际上是一个SortedSet.我想这个问题变成了,为什么Sorted Set比一般的Hash Set更优选作为不可变/功能数据结构?

f#

9
推荐指数
1
解决办法
343
查看次数

为什么 F# 的惯用字典集合 (Map<K,V>) 需要类型 K 来实现可比较,而 C# 的 Dictionary<K,V> 不需要?

我知道这个问题与我前一段时间问过的问题非常相似:为什么 F# 的默认集合集合是排序的,而 C# 的默认集合集合不是?

不过,我想确认一下,这里给出的原因是否与本案相同?我想知道 F# 中是否有一个由某人编写的不可变实现Map,它不那么严格并且不需要 K 具有可比性?我很乐意使用它,因为我不太关心性能。

f# dictionary hashtable c#-to-f#

4
推荐指数
1
解决办法
370
查看次数