Variables
Global
The defined objecttypes are global. Global variables can be used in code and colon words without a Tcl "global" declaration.
Local
Local variables are also handled as objecttypes. Initially a local has the type variable, thus the messages and methods of a variable apply to a local. The variable can be cast to a different type.
Example:
: validMoves ( from | to move victim -- res )
cast move string cast res list
{} res setlist
board names { to} foreach
" $from-$to" move set
move valid? if
to board victim set
" -$victim" move append
move res append
then
repeat
res sort ;