Я не уверен, является ли это типо или нет, но ваши данные не соответствуют оконным.
let firstThreeToTuple (a : _[]) = (a.[0], a.[1], a.[2])
seq {1 .. 6}
|> Seq.windowed 3
|> Seq.map firstThreeToTuple
|> Seq.iter (printfn "%A")
(1, 2, 3)
(2, 3, 4)
(3, 4, 5)
(4, 5, 6)
Если вам нужна функция, которая берет последовательность и разбивает ее на последовательность массивов, вы можете использовать этот код из другого вопроса .
let chunks n (sequence: seq<_>) =
let fold_fce (i, s) value =
if i < n then (i+1, Seq.append s (Seq.singleton value))
else ( 1, Seq.singleton value)
in sequence
|> Seq.scan (fold_fce) (0, Seq.empty)
|> Seq.filter (fun (i,_) -> i = n)
|> Seq.map (Seq.to_array << snd )
Затем вы можете запустить результат через firstThreeToTuple.
seq {1 .. 6}
|> chunks 3
|> Seq.map firstThreeToTuple
|> Seq.iter (printfn "%A")
(1, 2, 3)
(4, 5, 6)