目的是:使用foldr定义一个函数remove,该函数以两个字符串作为参数,并从第二个列表中出现的第一个列表中删除每个字母。例如,remove "first" "second" = "econd"

如果此函数使用单个字符和一个字符串,我将这样做:

remove a xs = foldr (\x acc -> if x /= a then x : acc else acc) [] xs

但是我不知道该如何使用两个字符串来实现这一点。谢谢!

最佳答案

remove xs ys = foldr (\x acc -> if elem x xs then acc else x : acc) [] ys

是的

关于list - Haskell函数需要两个字符串,并根据第一个过滤第二个字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52303239/

10-11 23:52
查看更多