Haskell 使用辅助函数递归删除字符

Haskell recursively removing chars using helper function

我有一个函数定义如下:

rmCharsRec :: String -> String -> String

我有一个辅助函数 rmChar 定义如下,它删除字符串中出现的所有字符:

rmChar :: Char -> String -> String

rmCharsRec 应该删除第一个字符串、第二个字符串和 return 响应中每个字符的所有出现。

我试过以下方法:

rmCharsRec :: String -> String -> String
rmCharsRec _ "" = ""
rmCharsRec c:chars str = rmChar ( c str ) ++ rmCharsRec chars

但是好像不行。我总是收到以下错误:

file.hs:140:1: Parse error in pattern: rmCharsRec

**这不是作业题*。我只想从一组练习中学习 Haskell,但由于不明白为什么会出错,所以我坚持这样做。

有人可以告诉我我的代码有什么问题吗?

如果你想写一个像 c:chars 这样的模式,你需要像这样把它放在方括号中:

rmCharsRec (c:chars) str = ...

这将解决您提到的错误消息,但我认为这不是您需要处理的唯一问题。

您忘记在模式匹配中将 c:chars 括起来。