我在 Haskell 中使用两个列表作为“集合”,我应该找到并返回两个列表的交集。我有措施从列表中删除重复项,但是我无法想到如何实际比较列表并获取另一个仅包含两个列表中都存在的元素的列表。这是我到目前为止所拥有的
intersect :: [Integer] -> [Integer] -> [Integer]
intersect [] _ = []
intersect _ [] = []
intersect (x:xs) L2 = filter (\x -> x 'elem' L2) L2
Run Code Online (Sandbox Code Playgroud)
然而,这是不正确的,但从逻辑上讲,我无法确切地想到如何使这项工作发挥作用。任何想法和建议将不胜感激!另外,如果有人有任何不涉及导入任何其他模块的想法会更好,因为我只想依赖前奏中的函数。