A short question in comp.lang.tcl got me several useful answers that I'm now putting here for later reference:
The (generalized) question:
The specific context:
The answers:
by Roy Terry:
proc ? {cond args} {return $cond} if { [? {<cond1>} John Doe ] && [? {<cond2>} Fu Bar ] ... } ...
if { cond1 (* John Doe *) && cond2 (* Fu Bar *) ... } ...
by Ulrich Schoebel
set cond [list] lappend cond $cond1 ;# John Doe lappend cond $cond2 ;# Fu Bar ... if {[expr [join $cond &&]]} { ...
Thanks for all the hints!