【问题标题】:f# set and map equalityf# 设置和映射相等
【发布时间】:2013-12-05 18:25:50
【问题描述】:

set1 = set2 用于 F# 不可变集合和映射如何工作?他们会做正确的集合/映射平等吗?

文档说:

基于二叉树的不可变集合,其中比较是 F# 结构比较函数,可能使用 键值上的 IComparable 接口。

它们是基于二叉树的,所以可能不是根据插入的顺序元素的确切形式吗?所以天真地使用F#结构比较函数是行不通的……

我在文档中找不到任何关于它的信息。我刚刚错过了吗?

【问题讨论】:

    标签: map f# set equality


    【解决方案1】:

    是的,显然它会正常工作。

    查看the sourceEquals 被覆盖并使用GetEnumerator 并检查它们是否以相同的顺序返回相同的元素。这些应该是有序的,如this question 所示,因为Set.toSeq 的文档说:“集合元素的有序序列。”

    这在 Jon Harrop 和 Don Syme 的“F# for Scientists”一书中也提到过:

    【讨论】:

      猜你喜欢
      • 2012-11-19
      • 1970-01-01
      • 2012-03-03
      • 2017-02-23
      • 1970-01-01
      • 2010-09-21
      • 1970-01-01
      • 1970-01-01
      • 2010-12-19
      相关资源
      最近更新 更多