gpt4 book ai didi

list - F# 取一个列表,返回元组列表

转载 作者:行者123 更新时间:2023-12-04 23:39:31 25 4
gpt4 key购买 nike

我做了一些研究,我看到 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/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com