gpt4 book ai didi

haskell - 比较相同索引处的元素

转载 作者:行者123 更新时间:2023-12-02 18:27:51 26 4
gpt4 key购买 nike

我正在尝试比较 haskell 中两个列表的相同索引处的元素。如果两个元素在同一索引处相等,那么我必须返回该索引。我知道如何使用过滤器和 zip 比较两个函数,但我的函数返回值而不是索引。

 compare l1 l2 = map fst . filter (\(x,y) -> x == y) $ zip l1 l2

当我用 ghci 运行它时,我有

compare [1,2,3,4,5] [1,2,3,7,8,9,11,5]
[1,2,3]

我想要[0,1,2]。有人能给我提示如何解决这个问题吗?

最佳答案

您可以使用 zip3[0..] 将索引包含为大小为 3 的元组的第一项:

compare l1 l2 = map (\(i, _, _) -> i) . filter (\(_, x,y) -> x == y) $ zip3 [0..] l1 l2

关于haskell - 比较相同索引处的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42213017/

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