egison-5.0.0: test/lib/core/assoc.egi
declare symbol x, y, z: MathExpr
assertEqual "toAssoc"
(toAssoc [x, x, y, z])
[(x, 2), (y, 1), (z, 1)]
assertEqual "toAssoc"
(toAssoc [x, y, x])
[(x, 1), (y, 1), (x, 1)]
assertEqual "fromAssoc"
(fromAssoc [(x, 2), (y, 1)])
[x, x, y]
assertEqual "toAssoc to get keys"
(map (\(k, v) -> k) [(x, 2), (y, 1)])
[x, y]
assertEqual "assocMultiset"
(matchAll [(x, 3), (y, 2), (z, 1)] as assocMultiset something with
| (#z, $n) :: $r -> (n, r))
[(1, [(x, 3), (y, 2)])]
assertEqual "assocMultiset"
(matchAll [(x, 3), (y, 2), (z, 1)] as assocMultiset something with
| ($a, #2) :: $r -> (a, r))
[(x, [(x, 1), (y, 2), (z, 1)]), (y, [(x, 3), (z, 1)])]
assertEqual "assocMultiset"
(matchAll [(x, 3), (y, 2), (z, 1)] as assocMultiset something with
| (#y, #1) :: $r -> r)
[[(x, 3), (y, 1), (z, 1)]]
assertEqual "assocMultiset"
(matchAll [(x, 3), (y, 2), (z, 1)] as assocMultiset something with
| ($a, $n) :: $r -> (a, n, r))
[(x, 3, [(y, 2), (z, 1)]), (y, 2, [(x, 3), (z, 1)]), (z, 1, [(x, 3), (y, 2)])]
assertEqual "AC.intersect"
(AC.intersect [(x, 2), (y, 1)] [(x, 1), (y, 2)])
[(x, 1), (y, 1)]
assertEqual "AC.intersect"
(AC.intersect [(x, 2), (y, 2)] [(x, 1), (y, 1)])
[(x, 1), (y, 1)]
assertEqual "AC.intersect"
(AC.intersect [(x, 1), (y, 1)] [(x, 2), (y, 2)])
[(x, 1), (y, 1)]