Posted to tcl by kbk at Tue Jul 28 21:00:57 GMT 2015view raw

  1. proc worker {a} {
  2. set i 0
  3. set b [yield]
  4. while {1} {
  5. set b [yield [expr {$a * [incr i] * $b}]]
  6. }
  7. }
  8. coroutine fred worker 2
  9. puts [fred 3]
  10. puts [fred 5]
  11. puts [fred 5]
  12.