Symmetric difference for Set and IntSet
Bardur Arantsson
spam at scientician.net
Thu Jun 18 21:42:33 UTC 2020
On 17/06/2020 21.25, Andrew Lelechenko wrote:
> Hi all,
>
> I propose to add a new combining function to `Data.Set` and `Data.IntSet` with the following semantics (but better implementation):
>
> symmetricDifference :: Set a -> Set a -> Set a
> symmetricDifference x y = (x \\ y) <> (y \\ x)
>
> The context is that Federico (CC'ed) is working on a GSoC project about faster factorisation algorithms in `arithmoi` (http://hackage.haskell.org/package/arithmoi), and the symmetric difference is a basic building block for sparse linear algebra over GF(2) field.
>
+½.
I think it's probably going to be useful, but I would suggest an
algorithm which actually returns each of the terms here (as a tuple), i.e.
The "added" bits
The "removed" bits
The "common" bits
This may not be *that* useful for sets per se, but I've lost count of
how often I've had to implement a similar thing for maps.
More information about the Libraries
mailing list