Set operations

The Cartesian product of two finite sets can be found using the >< operator.

Disco> {1,2,3} >< {'x','y'}
{(1, 'x'), (1, 'y'), (2, 'x'), (2, 'y'), (3, 'x'), (3, 'y')}

The union or intersection of two finite sets can be found using the union and intersect operators, or using the Unicode notation and .

Disco> {1,2,3} union {2,3,4}
{1, 2, 3, 4}
Disco> {1,2,3} intersect {2,3,4}
{2, 3}

The difference of two sets can be found using the set difference operator, written \:

Disco> {7 .. 12} \ {1 .. 10}
{11, 12}

You can check whether one set is a subset of another using the subset operator (or the Unicode symbol ):

Disco> {2,3,4} subset {1 .. 10}
true
Disco> {7 .. 11} subset {1 .. 10}
false

Note that Disco does not support the set complement operation, since the complement of a finite set is infinite whenever the domain is infinite.