Listing of doc/example-scripts/rosetta-multiple-distinct.tcl
Rosetta example: Multiple distinct objects
Create a sequence (array, list, whatever) consisting of n distinct, initialized items of the same type. n should be determined at runtime.
package req nx
The class Klass
defines and implements the item type. It can also
be used to query its population of instances.
nx::Class create Klass set n 100; # runtime parameter
Wrong: Only a single item (object) is created, its (command) name is replicated n
times.
% llength [Klass info instances] 0; set theList [lrepeat $n [Klass new]] % llength [Klass info instances] 1; % llength [lsort -unique $theList] 1; [lindex $theList 0] destroy
Correct: n
items (objects) having distinct (command) names are
created and stored in the list.
% llength [Klass info instances] 0; set theList {} for {set i 0} {$i<$n} {incr i} { lappend theList [Klass new] } % llength [Klass info instances] 100; % llength [lsort -unique $theList] 100;