我试图让两个列表相交的“相反”:像 :哈斯克尔相反(列表)
let all = [1..5]
let mask = [2,3]
let res = ???
-- let res = all `intersect` mask <-- reverse/opposite ?
-- I want to get [1,4,5] ?
我试图让两个列表相交的“相反”:像 :哈斯克尔相反(列表)
let all = [1..5]
let mask = [2,3]
let res = ???
-- let res = all `intersect` mask <-- reverse/opposite ?
-- I want to get [1,4,5] ?
您正在寻找差集,这是\\
来自Data.List的运营商:
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]
O哇只是我想要什么:)谢谢你! – user914584
@ user914584但是请注意,“(\\)”仅从第二个列表的每个元素中删除第一个列表中的一个元素,例如, '[1,2,3,2] \\ [2] = [1,3,2]'。如果这对你的用例不好,''filter('notElem' second)first''是另一种选择。 –
我认为这就是所谓的相对补充。 – Pubby