gpt4 book ai didi

list - 学习 haskell : How to remove an item from a List in Haskell

转载 作者:行者123 更新时间:2023-12-03 01:09:33 26 4
gpt4 key购买 nike

尝试学习 Haskell。我正在尝试编写一个简单的函数来从列表中删除一个数字,而不使用内置函数(删除......我认为)。为了简单起见,我们假设输入参数是 Integer,列表是 Integer 列表。这是我的代码,请告诉我以下代码有什么问题

areTheySame :: Int -> Int-> [Int]

areTheySame x y | x == y = []
| otherwise = [y]

removeItem :: Int -> [Int] -> [Int]

removeItem x (y:ys) = areTheySame x y : removeItem x ys

最佳答案

其他人是正确的,问题是 : 运算符。不过,我想说,返回列表的 are TheySame 函数无论如何都是错误的方法。该函数的更好实现是:

,而不是切换到 ++ 运算符。
removeItem _ []                 = []
removeItem x (y:ys) | x == y = removeItem x ys
| otherwise = y : removeItem x ys

如您所见,这是一个非常简单的实现。此外,与将一堆列表附加在一起相比,这样对您的程序来说要少得多。它还有其他好处,例如懒惰地工作。

关于list - 学习 haskell : How to remove an item from a List in Haskell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2097501/

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