【发布时间】:2016-02-09 10:43:00
【问题描述】:
我有一个函数定义如下:
rmCharsRec :: String -> String -> String
我有一个辅助函数 rmChar 定义如下,它删除字符串中所有出现的字符:
rmChar :: Char -> String -> String
rmCharsRec 应该删除第一个字符串和第二个字符串中每个字符的所有出现并返回响应。
我尝试了以下方法:
rmCharsRec :: String -> String -> String
rmCharsRec _ "" = ""
rmCharsRec c:chars str = rmChar ( c str ) ++ rmCharsRec chars
但它似乎不起作用。我总是收到以下错误:
file.hs:140:1: Parse error in pattern: rmCharsRec
**这不是作业问题*。我只是想从一组练习中学习 Haskell,但我一直坚持这一点,因为我不明白为什么会出错。
有人可以告诉我我的代码有什么问题吗?
【问题讨论】:
-
提示:使用
foldl遍历即将删除的字符。 -
我将在下一个练习中使用 foldl。我想通过自己实现递归并使用 foldl 或 foldr 来查看差异:) 感谢您的提示
标签: string haskell recursion ghci