一个Haskell函数,它接受两个字符串并根据第一个过滤第二个字符串

Cem*_*lay 2 haskell list filter

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

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

remove a xs = foldr (\x acc -> if x /= a then x : acc else acc) [] xs
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚我应该用两个字符串做这个.谢谢!

Cem*_*lay 5

remove xs ys = foldr (\x acc -> if elem x xs then acc else x : acc) [] ys
Run Code Online (Sandbox Code Playgroud)

是的.