Posted to tcl by hypotoad at Fri Sep 28 21:11:06 GMT 2018view pretty

proc fib_gen {} {
  set seq0 0
  set seq1 1
  yield [info coroutine]
  yield 1
  while 1 {
    set seq [expr {$seq0+$seq1}]
    set seq0 $seq1
    set seq1 $seq
    yield $seq
  }
}

coroutine FIB fib_gen
for {set x 0} {$x < 46} {incr x} {
  puts [list [FIB]]
}