如何找到未包含在另一个haskell列表中的列表元素

时间:2014-12-03 21:21:39

标签: haskell

我是haskell的新手,想要在两个haskell列表之间设置差异。例如,我有列表ab,想要a-b,即[4,5,6,7]

let a = [1,2,3,4,5,6,7] 
let b = [1,2,3]

是否有用于执行此操作的内置函数。

1 个答案:

答案 0 :(得分:8)

您可以使用(\\)中的Data.List运算符,请注意它只删除每个运算符的第一个实例,所以

> [1..7] \\ [1..3]
[4,5,6,7]
> [1,1,1] \\ [1,2]
[1,1]

如果您想要真正的“设置差异”,请使用Data.Set

> import qualified Data.Set as Set
> Set.fromList [1..7] Set.\\ Set.fromList [1..3]
> Set.fromList [1,1,1]
fromList [1]
> Set.fromList [1,1,1] Set.\\ Set.fromList [1,2]
fromList []