gpt4 book ai didi

列表包含 haskell 中列表成员的第二个元素

转载 作者:行者123 更新时间:2023-12-02 22:12:33 24 4
gpt4 key购买 nike

我正在尝试解决前一年的一个旧期中问题,但我在这个问题上遇到了很多麻烦。

使用列表理解,实现具有以下类型的函数:

collectSecond :: [[Int]] -> [Int]

使得 (collectSecond xs) 返回一个列表,其中包含 xs 的列表成员的第二个元素,除了那些长度小于二的列表成员。例如:

collectSecond [[1,2,3], [4], [], [5,6]] ~> [2,6]
collectSecond [[1], [], [2]] ~> []
collectSecond [] ~> []

如有任何帮助,我们将不胜感激。

最佳答案

您可以在列表理解中使用模式匹配来获取第二个元素,如下所示:

collectSecond xs = [x2 |  x1:x2:rest <-  xs]

这里 x2 匹配 xs 包含的每个列表的第二个元素,如果有的话。

Prelude> collectSecond [[1,2,3], [4], [], [5,6]]
[2,6]

如果没有第二个元素,则不会将任何元素添加到该子列表的列表中。例如上面例子中的[4]和[]。

关于列表包含 haskell 中列表成员的第二个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15016277/

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