Posted to tcl by colin at Wed Nov 17 23:41:52 GMT 2010view pretty

namespace eval foo {
    proc wilma {} {
	puts wilma!
    }
    proc bar {} {
	while {1} {
	    variable v
	    puts [incr v]
	    wilma
	    yield
	}
    }
}

coroutine ::coro ::foo::bar
namespace delete ::foo

while {1} {
    ::coro
}