使用1111到6666之间的元素在F#中创建集

时间:2016-11-07 16:02:33

标签: f# set sequence

如何使用1111到6666之间的元素在F#中创建一个Set,而没有任何值为0,7或更高。

E.g。 [1111,1112,1113,1114,1115,1116,1121] 我想把它变成一套。

提前致谢

2 个答案:

答案 0 :(得分:6)

您可以使用序列理解:

let values = seq {
    for i in 1110 .. 10 .. 6660 do
      for j in 1 .. 6 do
        yield i + j
    }

并使用Set.ofSeq创建一个集合,例如

let s = Set.ofSeq values

答案 1 :(得分:1)

必须有一个比以下更简单的方法:

let values = seq {
for a in 1000 .. 1000 .. 6000 do
for b in 100 .. 100 .. 600 do
for c in 10 .. 10 .. 60 do
for d in 1 .. 6 do
    yield a + b + c + d
}