【发布时间】:2017-12-22 15:05:45
【问题描述】:
我是 Haskell 的初学者。我想比较两个字符串列表并删除列表之间的公共元素并返回一个具有唯一元素的新列表。
下面是我的代码:
Prelude Data.List> let list_1 = ["apple", "orange", "apple"]
Prelude Data.List> let list_2 = ["apple"]
Prelude Data.List> let removeCommonWords xs ys = filter (\x -> x `elem` ys) xs
Prelude Data.List> removeCommonWords list_1 list_2
以上代码的输出:
["apple","apple"]
目前,filter 函数正在过滤常用词并返回一个包含常用词的新列表。但是,我希望它返回一个包含唯一单词的新列表。我想我需要一个新的过滤器正则表达式。
预期输出:
["orange"]
我还尝试了以下方法:
Prelude Data.List> let removeCommonWords xs ys = filter (\x -> x `elem` ys) xs
Prelude Data.List> remove ["orange", "apple", "apple"] "apple"
以上代码的输出为:
["orange"]
但是,我想比较两个字符串列表 - 而不是列表和字符串。
【问题讨论】:
标签: haskell