Purpose: show some solutions-on-the-fly. Try all cruelties to this language you can imagine!
Rationale: some days I feel unhappy if there is no occasion to do something quick'n'dirty. (The rest of the year, I'm a nice guy.)
wdb In earlier years for my project One Hand Content there was no lassign yet. Thus I made a Lisp-style let, also minimalistic style:
proc let args {uplevel foreach $args break}
It works as follows: the call
let {a b} {apple banana}
expands to
foreach {a b} {apple banana} break
with side-effect that variables a, b are set.
How to swap variables:
let {a b} [list $b $a]
which expands to
foreach {a b} {banana apple} break
Benefits: no infix syntax introduced, just pure Tcl styled polish notation (German: Polnische Notation).
[Do you play Tina Turner while coding?] -- No, as long as I'm coding, there is no music necessary.