Posted to tcl by mr_calvin at Fri Nov 24 13:26:21 GMT 2017view pretty

set a "(1 && 1)"
set b "(1 || 0)"
set c "(0 || 0)"

set e [subst -nocommands {
    ($a ? 1 : [return -code error "a failed!"]) &&
    ($b ? 1 : [return -code error "b failed!"]) &&
    ($c ? 1 : [return -code error "c failed!"])
}]

if {[catch {expr $e} msg]} {
    puts $msg
}