Posted to tcl by colin at Sat Jan 12 05:40:38 GMT 2013view raw

  1. % proc nest {body args} {if {![llength $args]} {return $body}; set args [lassign $args var vals]; return [list foreach $var $vals [nest $body {*}$args]];}
  2. % {*}[nest {puts "$a $b"} a {1 2 3} b {4 5 6}]
  3. 1 4
  4. 1 5
  5. 1 6
  6. 2 4
  7. 2 5
  8. 2 6
  9. 3 4
  10. 3 5
  11. 3 6