我是haskell的新手,想要在两个haskell列表之间设置差异。例如,我有列表a
和b
,想要a-b
,即[4,5,6,7]
。
let a = [1,2,3,4,5,6,7]
let b = [1,2,3]
是否有用于执行此操作的内置函数。
答案 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 []