List 交叉路口对面的Haskell(列表)
我试图得到两个列表相交的“对立面”: 比如:List 交叉路口对面的Haskell(列表),list,haskell,intersect,List,Haskell,Intersect,我试图得到两个列表相交的“对立面”: 比如: let all=[1..5] 设掩码=[2,3] 让res=??? --让res=all`intersect`mask您正在查找set difference,它是来自以下位置的\\运算符: 我认为这称为相对补码。@user914584但请注意,(\\)只从第一个列表中删除第二个元素中的每个元素,例如[1,2,3,2]\\[2]=[1,3,2]。如果这不适合您的用例,那么可以选择先过滤(`notElem`second)。 let all = [1..
let all=[1..5]
设掩码=[2,3]
让res=???
--让res=all`intersect`mask您正在查找set difference,它是来自以下位置的\\
运算符:
我认为这称为相对补码。@user914584但请注意,(\\)
只从第一个列表中删除第二个元素中的每个元素,例如[1,2,3,2]\\[2]=[1,3,2]
。如果这不适合您的用例,那么可以选择先过滤(`notElem`second)
。
let all = [1..5]
let mask = [2,3]
let res = ???
-- let res = all `intersect` mask <-- reverse/opposite ?
-- I want to get [1,4,5] ?
Prelude> import Data.List ((\\))
Prelude Data.List> let all = [1..5]
Prelude Data.List> let mask = [2,3]
Prelude Data.List> all \\ mask
[1,4,5]