F# 在F中创建一个有序集#

F# 在F中创建一个有序集#,f#,set,F#,Set,我需要一些帮助来了解如何在F#中创建有序集,或者至少创建一个集合,然后对其进行排序。关于这个主题的文档不是很清楚。Set实现了IEnumerable接口,因此您可以在Set上使用Seq模块中的函数 let set = Set.ofList [ 9; 2; 5; 7; 5 ] let orderedSeq = Seq.sort set “按设计”集合不是经过严格排序的集合,但您可以查询集合以按特定顺序检索其元素。谢谢您的回复,是否可以创建一个可变的空集,然后向其中添加值?功能方法是将初始值声明为

我需要一些帮助来了解如何在F#中创建有序集,或者至少创建一个集合,然后对其进行排序。关于这个主题的文档不是很清楚。

Set实现了IEnumerable接口,因此您可以在Set上使用Seq模块中的函数

let set = Set.ofList [ 9; 2; 5; 7; 5 ]
let orderedSeq = Seq.sort set

“按设计”集合不是经过严格排序的集合,但您可以查询集合以按特定顺序检索其元素。

谢谢您的回复,是否可以创建一个可变的空集,然后向其中添加值?功能方法是将初始值声明为空集
set.empty
,然后通过
set.add在其上构建新的集合。看看这个函数的签名,它返回一个新的集合并添加元素。关于不同的集合类型以及如何使用它们,有很多参考资料。请阅读此处:请注意,集合已经排序,但文档并没有完全清楚地说明这一点。@Abel-单词“order”的模糊性让人困惑,但我相信最初的问题实际上是排序,而不是维护插入元素的顺序(特别是考虑到接受的答案使用了
Seq.sort
)。
set
类型的文档说明:“基于二叉树的不可变集,其中比较是F#结构比较函数”,因此我认为很明显,集合的元素是基于F#
compare
运算符按排序顺序存储的,并且在不同版本之间不会更改。您想编写自己的排序集实现还是使用现有的排序集实现?我宁愿使用内置的排序集实现。