102
For Fibers we have got classic example: generating of Fibonacci numbers
fib = Fiber.new do
x, y = 0, 1
loop do
Fiber.yield y
x,y = y,x+y
end
end
Why do we need Fibers here? I can rewrite this with just the same Proc (closure, actually)
def clsr
x, y = 0, 1
Proc.new do
x, y = y, x + y
x
end
end
So
10.times { puts fib.resume }
and
prc = clsr
10.times { puts prc.call }
will return just the same result.
So what are the advantages of fibers. What kind of stuff I can write with Fibers I can't do with lambdas and other cool Ruby features?