This library is a collection of high performance utilities from Set Theory, which operate on an arbitrary number of Sets by each accepting variable arguments.
Each utility function operates with the principals of immutability: none of the input sets are modified in the process or result of calculation.
Set Operations:
A ∖ B
difference: The difference of sets contains all the elements of the first set, not contained in other sets.
import { difference } from 'set-utilities';
const differenceAB = difference(setA, setB);
const differenceABC = difference(setA, setB, setC);
A ∩ B
intersection: The intersection of sets contains all the elements each contained in every set.
import { intersection } from 'set-utilities';
const intersectionAB = intersection(setA, setB);
const intersectionABC = intersection(setA, setB, setC);
A ∪ B
union: The union of sets contains all the elements each contained in any set.
import { union } from 'set-utilities';
const unionAB = union(setA, setB);
const unionABC = union(setA, setB, setC);
A ∆ B
symmetric difference (xor): The symmetric difference of sets contains only the unique elements of each set.
import { xor } from 'set-utilities';
const xorAB = xor(setA, setB);
const xorABC = xor(setA, setB, setC);
Set Comparisons:
A ∼ B
equivalence: Sets are equivalent if they have the same cardinality, and there is a bijection between the elements contained in each set.
import { equivalence } from 'set-utilities';
const isEquivalentAB = equivalence(setA, setB);
const isEquivalentABC = equivalence(setA, setB, setC);
A ∩ B = ∅
disjoint: Sets are disjoint if they have no elements in common.
import { disjoint } from 'set-utilities';
const isDisjointAB = disjoint(setA, setB);
const isDisjointABC = disjoint(setA, setB, setC);
A ∩ B ∩ C = ∅
pairwise disjoint: A family of sets are pairwise disjoint if none of the sets share any elements in common.
import { pairwiseDisjoint } from 'set-utilities';
const isPairwiseDisjointAB = pairwiseDisjoint(setA, setB);
const isPairwiseDisjointABC = pairwiseDisjoint(setA, setB, setC);
A ⊆ B
subset: A set is a subset of another if all of its elements are contained in the other set.
import { subset } from 'set-utilities';
const isSubsetAB = subset(setA, setB);
const isSubsetABC = subset(setA, setB, setC);
A ⊂ B
proper subset: A set is a proper subset of another if all of its elements are contained in the other set, and it has a lower cardinality than the other set.
import { properSubset } from 'set-utilities';
const isProperSubsetAB = properSubset(setA, setB);
const isProperSubsetABC = properSubset(setA, setB, setC);
A ⊇ B
superset: A set is a superset of another if it contains all the elements contained in the other set.
import { superset } from 'set-utilities';
const isSupersetAB = superset(setA, setB);
const isSupersetABC = superset(setA, setB, setC);
A ⊃ B
proper superset: A set is a proper superset of another if it contains all the elements contained in the other set, and it has a greater cardinality than the other set.
import { properSuperset } from 'set-utilities';
const isProperSupersetAB = properSuperset(setA, setB);
const isProperSupersetABC = properSuperset(setA, setB, setC);
Set Ordering:
A ⇅
sort: An immutable sorting operation for sets.
import { sort } from 'set-utilities';
const sortedA = sort(setA);
const sortedB = sort(setB, compareFunction);