我做了一些研究,我看到 List.zip 函数接受两个列表并返回一个元组列表,但是如何将一个列表更改为一个元组列表?
let rec combinePair xs =
match xs with
| [] -> []
| [x1] -> []
| x1::x2::x3::xs -> [(x1, x2)]
| x1::x2::xs -> [(x1, x2)]
如果列表中存在奇数个元素,则应删除最后一个元素,如果存在偶数个元素,则应将它们作为元组列表返回。例如
combinePair [x1; x2; x3; x4] = [(x1, x2); (x3, x4)]
最佳答案
你的代码就快到了。
思路如下:
这几乎可以完全相同地转换为 F#:
let rec combinePair xs =
match xs with
| [] | [_] -> []
| x1::x2::rest -> (x1, x2) :: (combinePair rest)
(注意我是如何将前两个案例组合在一行中的,
[] | [_] ->
)
关于list - F# 取一个列表,返回元组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42289225/