我正在尝试使用模式匹配和递归将列表中的某些单词替换为其他单词。模式匹配并非在所有情况下都有效,并且我的代码在所有情况下都不会使用模式匹配生成更改的字符串列表。
我想知道是否有人可以帮助我确定这是为什么?
pattr :: [[Char]] -> [[Char]]
pattr [] = []
pattr ("you":as) = ("u":pattr as)
pattr ("see":"you":as) = ("seaya":pattr as)
pattr ("by":"the":"way":as) = ("btw":pattr as)
pattr ("laugh":"out":"loud":as) = ("lol":pattr as)
pattr ("for":"your":"information":as) = ("fyi":pattr as)
pattr (x:as) = (x:as)
例子:
GHCi> pattr ["milk", "see", "you", "soon"]
> ["milk", "see", "you", "soon"]
GHCi> pattr ["see", "you", "soon"]
> ["cya", "soon"]