gpt4 book ai didi

list - 删除列表中给定元素的第一次出现

转载 作者:行者123 更新时间:2023-12-04 16:36:37 24 4
gpt4 key购买 nike

我需要编写一个代码来删除列表中给定元素的第一次出现。到目前为止,我只设法使代码删除给定元素的每个出现。
她现在是我的代码:

rem2 :: Eq a => [a] -> a -> [a]
rem2 xs y = [x | x <- xs, x /= y]
如果我尝试:
rem2 "hello" 'l'
代码将返回“heo”,而我希望它返回“helo”。有人能帮我吗?

最佳答案

您可以在此处使用递归。如果到达列表末尾,则返回一个空列表 (1);如果你得到一个非空列表 (x:xs)和列表的头部 x匹配我们正在寻找的项目(2),我们返回列表的尾部 xs ;如果项目不匹配(3),我们产生 x并在列表尾部递归 xs .
这个函数看起来像:

rem1 :: Eq a => [a] -> a -> [a]
rem1 ls y = go ls
where go [] = … -- (1)
go (x:xs) | … = … -- (2)
| otherwise = … -- (3)
我离开实现 部分作为练习。

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

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