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

  1. proc closure {script} {
  2. set cn [list closure $script]
  3. coroutine $cn apply [list {} "yield; $script"]
  4. return $cn
  5. }
  6.  
  7. set a [closure {yield 1; yield 2}]
  8.  
  9. puts [$a]
  10. puts $a
  11. puts [$a]
  12. puts $a
  13. puts [$a]
  14. puts [$a]
  15.