差分
2つのリストの差を取得するにはData.Listの(\\)を使います。
code: (haskell)
import Data.List
0..5 \\ 1, 3, 5, 7
0,2,4
同じ要素が複数ある場合は、双方のリストにある同じ要素の数が反映されます。
code: (haskell)
1, 2, 2 \\ 2
1,2
1, 2, 2 \\ 2, 2
1
1, 2, 2 \\ 2, 2, 2
1
Mapの場合も同様、ひとつ目のマップにしかない要素は(\\)オペレーターで見つけることができます。
code: (haskell)
> import Data.Map ((\\))
xs \\ ys
fromList (3,"b")
ys \\ xs
fromList (7,"C")
どちらか一方にしかない要素を見つけるにはdifferenceで取得した結果をunionすると求められます。
code: (haskell)
Map.union (xs \\ ys) (ys \\ xs)
fromList (3,"b"),(7,"C")
differenceは(\\)の別名です。
code: (haskell)
Map.difference xs ys
fromList (3,"b")
Map.difference ys xs
fromList (7,"C")
#recipe-collection