Posted to tcl by colin at Sat Jan 12 05:40:38 GMT 2013view pretty
% proc nest {body args} {if {![llength $args]} {return $body}; set args [lassign $args var vals]; return [list foreach $var $vals [nest $body {*}$args]];} % {*}[nest {puts "$a $b"} a {1 2 3} b {4 5 6}] 1 4 1 5 1 6 2 4 2 5 2 6 3 4 3 5 3 6