NAME

set -
Procedures for manipulating sets

SYNOPSIS

package require Tcl 8.0
package require struct  ? 2.0 ? 
::struct::set empty set
::struct::set size set
::struct::set contains set item
::struct::set union  ? set1... ? 
::struct::set intersect  ? set1... ? 
::struct::set difference set1 set2
::struct::set symdiff set1 set2
::struct::set intersect3 set1 set2
::struct::set equal set1 set2

DESCRIPTION

The ::struct::set namespace contains several useful commands for processing finite sets.

It exports only a single command, struct::set. All functionality provided here can be reached through a subcommand of this command.

COMMANDS

::struct::set empty set
Returns a boolean value indicating if the set is empty (true), or not (false).
::struct::set size set
Returns an integer number greater than or equal to zero. This is the number of elements in the set. In other words, its cardinality.
::struct::set contains set item
Returns a boolean value indicating if the set contains the element item (true), or not (false).
::struct::set union ? set1... ?
Computes the set containing the union of set1, set2, etc., i.e. "set1 + set2 + ...", and returns this set as the result of the command.
::struct::set intersect ? set1... ?
Computes the set containing the intersection of set1, set2, etc., i.e. "set1 * set2 * ...", and returns this set as the result of the command.
::struct::set difference set1 set2
Computes the set containing the difference of set1 and set2, i.e. ("set1 - set2") and returns this set as the result of the command.
::struct::set symdiff set1 set2
Computes the set containing the symmetric difference of set1 and set2, i.e. ("(set1 - set2) + (set2 - set1)") and returns this set as the result of the command.
::struct::set intersect3 set1 set2
This command is a combination of the methods intersect and difference. It returns a three-element list containing "set1*set2", "set1-set2", and "set2-set1", in this order. In other words, the intersection of the two parameter sets, and their differences.
::struct::set equal set1 set2
Returns a boolean value indicating if the two sets are equal (true) or not (false).

REFERENCES

KEYWORDS

set, union, intersection, difference, symmetric difference, emptiness, membership, cardinality