Set Operators

Set operators are common set operations that makes working with arrays easier.  All set operations return an array except for has which returns a boolean value.  Set operations perform deep comparisons. The following operations are possible with sets:

Given arrays (sets) A and B:

intersection (A ∩ B):

 The set of all objects that are a member of both A and B

Usage:

A.intersection(B);

union (A ∪ B):

 The set of all objects that are a member of A or B (or both)

Usage:

A.union(B);

difference (A \ B):

 The set of all members of A that are not members of B

Usage:

A.difference(B);

has (B ⊆ A):

 B is a subset of A (or it could be read as A is a superset of B)

Usage:

A.has(B);

once:

 Set of elements e that only appear 1 time in A

Usage:

A.once();

duplicates:

 Set of elements e that appear more than once in A

Usage:

A.duplicates();

unique:

 Set of (unique) elements e belonging to A

Usage:

A.unique(); 

Example

Set operators like other KRL operators can chained to perform more complex operations. This is how you could make your own symmetric difference operation (set of elements e belonging to either A or B, but not both):

symdiff = function (A,B) {
  (A.union(B)).difference(A.intersection(B));
}