我刚开始我的F#冒险而且被卡住了.我想编写一个递归函数,它从列表中获取元素,成对添加它们并返回列表 - int list - >(int*int)列表
所以这样:[x1; X2; X3; x4] = [(x1,x2);(x3,x4)]
这就是我现在所拥有的.
let rec combinePair xs =
match xs with
|[] -> []
|[x] -> [x]
|x::y::xs' -> (x,y)::combinePair xs'
Run Code Online (Sandbox Code Playgroud)
这不起作用,但我觉得它可能接近答案.我不知道怎么从这里继续.正如我仍在努力学习,我希望也许有人可以指出我正确的方向,而不是给我完整的答案
干杯
我非常接近答案.我忘了添加在包含奇数个元素的列表的情况下会发生什么.在我的情况下,我只是想让它摆脱最后一个元素.这是解决方案
let rec combinePair xs =
match xs with
| [] -> []
| [x] -> []
| x::y::xs' -> (x,y)::combinePair xs'
Run Code Online (Sandbox Code Playgroud)