Posted to tcl by hypnotoad at Wed Sep 26 21:31:49 GMT 2018view pretty

basra:~ seandeelywoods$ cat test.tcl 
proc Foreach {body args} { tailcall foreach list $args $body }

set result {}
Foreach {puts [list is [llength $result] long] ; lappend result {*}$list} \
  {a b c} \
  {d e f}
puts FINAL
puts [list is [llength $result] long]

basra:~ seandeelywoods$ tclsh test.tcl 
is 0 long
is 3 long
FINAL
is 6 long
basra:~ seandeelywoods$