【发布时间】:2021-09-10 09:58:09
【问题描述】:
我是使用haskell 的新手,但我尝试按照this 问题的答案创建自己的函数,该函数将列表和元素作为输入,并从列表中删除所述元素的第一个实例。
我的代码如下所示:
rem1 :: Eq a => [a] -> a -> [a]
rem1 [] _ = []
rem1 ys _ = ys
rem1 (y:ys) x | x == y = ys
| otherwise = y : rem1 ys x
当我在 ghci 中加载它时,代码会编译,但是当我测试它时,列表没有改变。像这样:
Ok, one module loaded.
ghci> rem1 "abab" 'b'
"abab"
什么时候应该是这样的:
Ok, one module loaded.
ghci> rem1 "abab" 'b'
"aab"
我该如何解决这个问题?
【问题讨论】:
-
如果我们用
-Wall开启警告,GHC 会警告这个错误——我建议这样做。
标签: visual-studio haskell ghci