|
From: avl <av...@lo...> - 2017-02-15 13:58:12
|
Peter S <pet...@gm...> wrote:
> So you want multiple assignments, without writing 'expr'?
tclsh # with tip-282
% proc eset {name args} {
upvar 1 $name var; set var [uplevel 1 [list expr $args]]
}
% proc = {name expr} {
upvar 1 $name var; set var [uplevel 1 [list expr $expr]]
}; # slight variation: only one expr argument.
% set x 0; time { eset x {$x+1} } 1000000
3.565578 microseconds per iteration
% # range: 3.49 - 3.73
% set x 0; time { = x {$x+1} } 1000000
1.563903 microseconds per iteration
% # range: 1.56 - 1.70
% set x 0; time { expr {"x" = $x+1 } } 1000000
0.302379 microseconds per iteration
% # range: 0.29 - 0.34
% set x 0; time { set x [expr {$x+1}] } 1000000
0.304734 microseconds per iteration
% # range: 0.29 - 0.34
'nuff said?
|