Posted to tcl by aspect at Fri May 08 23:10:46 GMT 2015view raw

  1. oo::class create Juggler {
  2.  
  3. method juggle {name target {value ""}} {
  4. if {$value eq ""} {
  5. set value [yield [info coroutine]]
  6. }
  7. while {$value ne ""} {
  8. puts "$name : $value"
  9. set value [string range $value 0 end-1]
  10. lassign [yieldto $target $value] value
  11. }
  12. }
  13. }
  14.  
  15. Juggler create juggler
  16.  
  17. coroutine j1 juggler juggle Larry [
  18. coroutine j2 juggler juggle Curly [
  19. coroutine j3 juggler juggle Moe j1]] "Nyuck!Nyuck!Nyuck!"
  20.