With the advent of [coroutines], Tcl now has an iterator protocol. The protocol is simple: An iterator is a command which one calls repeatedly until the command no longer exists. [for in%|%for ... in ...%|%] is a drop-in replacement for the standard [for] command which supports an expanding syntax for looping over iterators. <> Concept