我有一个关于 Haskell 的问题一直困扰着我。我目前需要编写一个删除字符串的函数,即"word"
从字符串列表中["hi", "today", "word", "Word", "WORD"]
返回列表["hi", "today", "Word", "WORD"]
。我不能使用任何高阶函数,只能求助于原始递归。
考虑到这个问题,我想也许我可以通过使用递归来解决它,在其中搜索第一个字符串的头部,如果匹配,"w"
然后比较尾部的下一个头部,看看是否匹配"o"
。但后来我很快意识到,在完成所有这些工作之后,您将无法删除完整的 string "word"
。
我的问题实际上是如何比较列表中的整个字符串,而不是一次仅将 1 个元素与以下内容进行比较:removeWord (x:xs)
。甚至可能吗?我是否必须编写一个辅助函数来帮助解决问题?