gpt4 book ai didi

list - 删除列表中第二次出现的元素 - Haskell

转载 作者:行者123 更新时间:2023-12-04 14:28:07 25 4
gpt4 key购买 nike

我正在尝试编写一个函数来删除列表中第二次出现的元素。
目前,我编写了一个删除第一个元素的函数:

    removeFirst _ [] = [] 
removeFirst a (x:xs) | a == x = xs
| otherwise = x : removeFirst a xs

作为起点。但是,我不确定这个功能是否可以通过列表理解来完成。有没有办法使用 map 来实现这一点?

编辑:现在我添加了一个 removeSecond 函数,它调用第一个
    deleteSecond :: Eq a => a -> [a] -> [a]
deleteSecond _ [] = []
deleteSecond a (x:xs) | x==a = removeFirst a xs
| otherwise = x:removeSecond a xs

然而,现在返回的列表删除了元素的第一次和第二次出现。

最佳答案

好吧,假设你有 removeFirst - 如何搜索第一个出现,然后使用 removeFirst在剩下的名单上?

removeSecond :: Eq a => a -> [a] -> [a]
removeSecond _ [] = []
removeSecond a (x:xs) | x==a = x:removeFirst a xs
| otherwise = x:removeSecond a xs

关于list - 删除列表中第二次出现的元素 - Haskell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22738555/

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