From: Michael Neumann Date: 2004-12-13T06:57:07+09:00 Subject: Re: Find every location of "th" in string. William James wrote: > In the Icon example, find() is a generator. You can write your > own generators: > > procedure main() > write( fibo() ) > write( fibo() ) > write( fibo() ) > > every f := fibo() do > { writes( f, " " ) > writes( "(", fibo(), ") " ) > if f > 80 then > break > } > end > > procedure fibo() > local old,new,temp > old := 0 > new := 1 > while 0 do > { ## Return 'new' and suspend. > suspend new > temp := new > new +:= old > old := temp > } > end > > 1 > 1 > 1 > 1 (1) 1 (1) 2 (1) 3 (1) 5 (1) 8 (1) 13 (1) 21 (1) 34 (1) 55 (1) 89 (1) > Does Ruby have generators? Not sure what your code above is really doing... in Ruby: def fib old, new = 0, 1 loop do yield new new, old = new+old, new end end fib do |i| p i break if i > 80 end Regards, Michael