集
编辑教程集
F#中的集合是一种数据结构,用作项目的集合,而不保留插入项目的顺序。 集合不允许将重复条目插入到集合中。
创建集
集可以通过以下方式创建
- 通过创建使用Set.empty空集和添加使用add函数项。
- 转换序列和列表来套。
下面是程序演示
(* creating sets *)
let set1 = Set.empty.Add(3).Add(5).Add(7). Add(9)
printfn"The new set: %A" set1
let weekdays = Set.ofList ["mon"; "tues"; "wed"; "thurs"; "fri"]
printfn "The list set: %A" weekdays
let set2 = Set.ofSeq [ 1 .. 2.. 10 ]
printfn "The sequence set: %A" set2
当你编译和执行程序,它产生以下输出
The new set: set [3; 5; 7; 9]
The list set: set ["fri"; "mon"; "thurs"; "tues"; "wed"]
The sequence set: set [1; 3; 5; 7; 9]
集的基本操作
下表显示了集的基本操作
值 | 描述 |
---|---|
add : 'T → Set<'T> → Set<'T> | 返回添加到集合中的元素的新集合。 如果集合已包含给定元素,则不会引发异常。 |
contains : 'T → Set<'T> → bool | 如果给定元素在给定集合中,则计算为true。 |
count : Set<'T> → int | 返回集合中的元素的数量。 |
difference : Set<'T> → Set<'T> → Set<'T> | 返回一个新的组与第二组从所述第一除去的元素。 |
empty : Set<'T> | 指定类型的空集。 |
exists : ('T → bool) → Set<'T> → bool | 测试集合的任何元素是否满足给定谓词。 如果输入函数是谓词并且元素是i0 ... iN,则该函数计算谓词i0或...或谓词iN。 |
filter : ('T → bool) → Set<'T> → Set<'T> | 返回包含只对给定的谓词返回true的集合中的元素一个新的集合。 |
fold : ('State → 'T → 'State) → 'State → Set<'T> → 'State | 应用于给定的累积功能所设定的所有要素。 |
foldBack : ('T → 'State → 'State) → Set<'T> → 'State → 'State | 应用于给定的累积功能所设定的所有要素。 |
forall : ('T → bool) → Set<'T> → bool | 测试集合的所有元素是否满足给定谓词。 如果输入函数是p并且元素是i0 ... iN,则该函数计算p i0 && ... && p iN。 |
intersect : Set<'T> → Set<'T> → Set<'T> | 计算这两个集合的交集。 |
intersectMany : seq |
计算的集合的序列的交集。该序列必须是非空的。 |
isEmpty : Set<'T> → bool | 返回true如果设置为空。 |
isProperSubset : Set<'T> → Set<'T> → bool | 如果第一个集合的所有元素都在第二个元素中,并且第二个元素中的至少一个元素不在第一个元素中,则计算为true。 |
isProperSuperset : Set<'T> → Set<'T> → bool | 如果第二个集合的所有元素都在第一个元素中,并且第一个元素的至少一个元素不在第二个元素中,则计算为true。 |
isSubset : Set<'T> → Set<'T> → bool | 如果第一个集合的所有元素都在第二个元素中,则计算为true。 |
isSuperset : Set<'T> → Set<'T> → bool | 如果第二个集合的所有元素都在第一个元素中,则计算为true。 |
iter : ('T → unit) → Set<'T> → unit | 将给定的函数应用于集合的每个元素,按照比较函数的顺序。 |
map : ('T → 'U) → Set<'T> → Set<'U> | 返回包含施加给定函数对输入集的每个元素的结果的新的集合。 |
maxElement : Set<'T> → 'T | 返回被用于该组中按照排序集合中的最高的元素。 |
minElement : Set<'T> → 'T | 返回被用于集在根据排序的集合中的最低元素。 |
ofArray : 'T array → Set<'T> | 创建一组包含相同元素作为给定的数组。 |
ofList : 'T list → Set<'T> | 创建一组包含相同元素作为给定的列表。 |
ofSeq : seq<'T> → Set<'T> | 创建从给定的枚举对象一个新的集合。 |
partition : ('T → bool) → Set<'T> → Set<'T> * Set<'T> | 将集合拆分为两个集合,其中包含给定谓词分别返回true和false的元素。 |
remove : 'T → Set<'T> → Set<'T> | 返回一个新集合,其中删除了给定元素。 如果集合不包含给定元素,则不会引发异常。 |
singleton : 'T → Set<'T> | 包含给定元素的集合。 |
toArray : Set<'T> → 'T array | 创建包含在顺序集合的元素的数组。 |
toList : Set<'T> → 'T list | 创建包含在顺序集合的单元的明细表。 |
toSeq : Set<'T> → seq<'T> | 返回集合的有序观为枚举对象。 |
union : Set<'T> → Set<'T> → Set<'T> | 计算两组的联合。 |
unionMany : seq |
计算的一组序列的结合。 |
下面的例子演示了上述一些功能的使用
例
let a = Set.ofSeq [ 1 ..2.. 20 ]
let b = Set.ofSeq [ 1 ..3 .. 20 ]
let c = Set.intersect a b
let d = Set.union a b
let e = Set.difference a b
printfn "Set a: "
Set.iter (fun x -> printf "%O " x) a
printfn""
printfn "Set b: "
Set.iter (fun x -> printf "%O " x) b
printfn""
printfn "Set c = set intersect of a and b : "
Set.iter (fun x -> printf "%O " x) c
printfn""
printfn "Set d = set union of a and b : "
Set.iter (fun x -> printf "%O " x) d
printfn""
printfn "Set e = set difference of a and b : "
Set.iter (fun x -> printf "%O " x) e
printfn""
当你编译和执行程序,它产生以下输出
Set a:
1 3 5 7 9 11 13 15 17 19
Set b:
1 4 7 10 13 16 19
Set c = set intersect of a and b :
1 7 13 19
Set d = set union of a and b :
1 3 4 5 7 9 10 11 13 15 16 17 19
Set e = set difference of a and b :
3 5 9 11 15 17
Mos固件,小电视必刷固件
ES6 教程
Vue.js 教程
JSON 教程
jQuery 教程
HTML 教程
HTML 5 教程
CSS 教程
CSS3 教程
JavaScript 教程
DHTML 教程
JSON在线格式化工具
JS在线运行
JSON解析格式化
jsfiddle中国国内版本
JS代码在线运行
PHP代码在线运行
Java代码在线运行
C语言代码在线运行
C++代码在线运行
Python代码在线运行
Go语言代码在线运行
C#代码在线运行
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。
大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
选择支付方式:
立即支付
¥
9.99
无法付款,请点击这里
金额: 0 元
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟