我需要代表一个集合,我开始使用Data.Set.我看到有什么可以做真正的- ,,singleton 等都是就在那里.我喜欢.我可以表达"什么",而不是"如何".但我内心的C程序员很不舒服.有很多方法可以实现一个集合(二叉树,哈希,布尔数组等).我真的可以信任Data.Set来选择最好的吗?我能以某种方式引导它,还是我只是屈服于它(我承认,可能更优秀)的判断?unionintersection
Tho*_*son 20
Data.Set没有内心的智慧(只看到来源!).它只是一棵平衡的树或有序的元素.您可以浏览具有不同性能特征的许多其他集合和类似结构的hackage.例如,请参阅无序容器(HashSet),HashTables和bloomfilter.
Nor*_*sey 19
通用Data.Set使用平衡二叉树.如果你有一组整数或位向量,你会想要Data.IntSet,它使用Patricia尝试.
这两种实现都经过多年的竞争磨练,以便通过Haskell获得最佳性能.
投降多萝西!