Posted to tcl by kbk at Fri Jul 18 20:49:44 GMT 2008view raw

  1. coroutine adder {n} {
  2. set sum $n
  3. while {1} {
  4. incr sum [lindex [yield $sum] 0]
  5. }
  6. }
  7. puts [adder 1]; # prints 1
  8. puts [adder 2]; # prints 3
  9. puts [adder 3]; # prints 6