All pastes #884636 Raw Edit

coroutine by Generator

public ruby v1 · immutable
#884636 ·published 2008-01-30 14:28 UTC
rendered paste body
require 'generator' def coroutine(m, *args)  Generator.new {|g|    m.call(*args) {|x| g.yield x}  }enddef generate_fibonacci(a, b)  loop do    yield a    a, b = b, a + b  endendfibonacci = coroutine(method(:generate_fibonacci), 1, 1)10.times do  puts fibonacci.nextend