Posted to tcl by evilotto at Wed Jul 31 01:52:12 GMT 2013view pretty

proc closure {script} {
    set cn [list closure $script]
    coroutine $cn apply [list {} "yield; $script"]
    return $cn
}   

set a [closure {yield 1; yield 2}]

puts [$a]
puts $a
puts [$a]
puts $a
puts [$a]
puts [$a]