假设有一个NxN board
,我想创建一个seq<seq<int*int>>
,其中包含板上的所有线。我不能使用可变变量。
例如,输入N
为2,则输出为:
seq [seq[(0,0);(0,1)];seq[(1,0);(1,1)];seq[(0,0);
(1,0)];seq[(0,1);(1,1)];seq[(0,0);(1,1)];seq[(0,1);(1,0)]]
板上有6条线,包括水平线,垂直线和对角线。
let f (n:int) : seq<seq<int*int>> =
let seq1 = seq{ for x in 0 .. n-1 do yield 0,x}
...
我可以创建一行。我无法通过循环将所有行组合成seq []。
let loop =
for j in 0 .. n-1 do
let seq1 (j:int) = seq{ for x in 0 .. n-1 do yield j,x}
我有一个想法,可以使用for循环来创建线条。但是我不知道如何存储seq1值并与新的seq1值组合。
答案 0 :(得分:0)
有多种方法可以执行此操作,但是我喜欢seq
构建器:
let positions =
seq {
for x in 0..10 do
for y in 0..10 do
yield (x, y)
}