gpt4 book ai didi

haskell - Haskell 中是否有一个函数可以按以下方式对列表的元素进行分组?

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

假设我有一个列表 [0,1,2,3],并且我想要一个包含元素 [(0,1), (1,2), (2,3)] 的新列表。 Haskell 中有执行此操作的函数吗?

最佳答案

您可以使其与 zip 一起使用,您可以将列表和该列表的尾部传递给它。例如,使用模式匹配:

f :: [a] -> [(a, a)]
f [] = []
f xa@(_:xs) = zip xa xs

或使用 tail :: [a] -> [a] :

f :: [a] -> [(a, a)]
f xs = zip xs (tail xs)

即使对于空列表,上述内容也将起作用,因为 zip 将首先在第一个列表上进行模式匹配,如果该列表已用尽,它将不会查看第二个列表。

或者应用风格:

f :: [a] -> [(a, a)]
f = zip <*> tail

关于haskell - Haskell 中是否有一个函数可以按以下方式对列表的元素进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60354247/

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