Collections F中的集合元素对#

Collections F中的集合元素对#,collections,f#,Collections,F#,我在这里查看收集功能列表: 但我似乎找不到我要找的东西 我有一个元素列表: [ 3; 4; 5; 6; 7; 8 ] 我在寻找这样的东西: [ 3; 4; 5; 6; 7; 8 ] |> List.iterPair (fun x y -> ()) 它将经过我的地方: 3 4 4 5 5 6 6 7 7 8 有没有办法通过内置函数实现这一点 此操作通常称为成对: 实际上,还有一个List.pairwise,它返回一个元组 list |> List.pairwise |&g

我在这里查看收集功能列表:

但我似乎找不到我要找的东西

我有一个元素列表:

[ 3; 4; 5; 6; 7; 8 ]
我在寻找这样的东西:

[ 3; 4; 5; 6; 7; 8 ]
|> List.iterPair (fun x y -> ())
它将经过我的地方:

3 4
4 5
5 6
6 7
7 8

有没有办法通过内置函数实现这一点

此操作通常称为成对

实际上,还有一个
List.pairwise
,它返回一个元组

list 
|> List.pairwise
|> List.iter(fun (x, y) -> printfn "%d %d" x y)
给出您的预期输出

一个更一般的思考方式是:

List.zip (list |> List.skip 1) list
因为在Linq中成对不可用:

items.Zip(items.Skip(1), (a, b) => a, b)
当然,如果使用
扫描
,效率会更高,但可读性更强