我試圖讓兩個列表相交的「相反」:像 :哈斯克爾相反(列表)
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