# 2008/11/14 03:09 @ root
proc map {varname mylist body} { upvar 1 $varname var set res {} foreach var $mylist { lappend res [uplevel 1 $body] } return $res } # e.g. map x {1 2 3 4 5} {expr $x*$x}
proc repeat {n script} { while {[incr n -1] >= 0} { uplevel 1 $script } } # e.g. set a 10 repeat 2 {puts $a}