[英]Take elements from list and add them in pairs recursively F#
我刚开始我的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'
这不起作用,但我觉得它可能接近答案。 我不知道怎么从这里继续。 正如我仍在努力学习,我希望也许有人可以指出我正确的方向,而不是给我完整的答案
干杯
我非常接近答案。 我忘了添加在包含奇数个元素的列表的情况下会发生什么。 在我的情况下,我只是想让它摆脱最后一个元素。 这是解决方案
let rec combinePair xs =
match xs with
| [] -> []
| [x] -> []
| x::y::xs' -> (x,y)::combinePair xs'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.