proc toggle {v} {
uplevel [concat set $v \[expr \[set $v\] ^ 1\]] } % set state 0 0 % toggle state 1 % toggle state 0
RS has this alternative:
proc toggle varName { upvar 1 $varName var set var [expr {!$var}] }
Category Example