使用callcc的Ruby枚举器不';不要终止
考虑到我的枚举器,我很难弄明白为什么使用callcc的Ruby枚举器不';不要终止,ruby,callcc,Ruby,Callcc,考虑到我的枚举器,我很难弄明白为什么可枚举#take从不终止: require 'continuation' fib = Enumerator.new do |yielder| c, x, y = callcc {|cc| [cc, 0, 1]} yielder << x c.call c, y, x+y end # this works as I'd suspect 1.upto(10) do puts fib.next end # this works as
可枚举#take
从不终止:
require 'continuation'
fib = Enumerator.new do |yielder|
c, x, y = callcc {|cc| [cc, 0, 1]}
yielder << x
c.call c, y, x+y
end
# this works as I'd suspect
1.upto(10) do
puts fib.next
end
# this works as I'd suspect
fib.take(1)
# this never terminates :(
fib.take(10)
要求“继续”
fib=枚举数。新do | yielder|
c、 x,y=callcc{| cc |[cc,0,1]}
Yield Ruby bugs转到bugs.Ruby-lang。com@BorisStitnicky我不确定这是一个错误,或者只是我误解了什么。我会开一张票,看看开发人员怎么说。