Documentation is at
This part of the struct (data structures) submodule of tcllib provides procedures for manipulating sets.
escargo 16 Feb 2007 - The documentation assumes that you can guess how sets are implemented.
For example, there are no examples. The published interface does not say how to create a set, nor how to determine the value of a set.
Apparently these sets are built on top of lists; wherever a set argument is used by a ::struct::set subcommand, a list will work.
Therefore, there is no need to have a set constructor (since you can just use a list). There is also no need for a separate iterator over a set, since a set is a list.
But the documentation does not make that clear.
LV So, then, let's provide some examples.
package require Tcl package require struct::set ::struct::set include set1 1 ::struct::set include set2 a ::struct::set include set2 b ::struct::set include set2 c ::struct::set include set3 dog ::struct::set add set1 $set2 set mt [::struct::set empty $set1] puts $mt puts [::struct::set size $set1] puts [::struct::set contains $set1 a] puts [::struct::set contains $set1 z] puts [::struct::set union $set1 $set2 $set3] puts [::struct::set intersect $set1 $set2 $set3] puts [::struct::set intersect $set1 $set2 ]