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