Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用callcc的Ruby枚举器不';不要终止_Ruby_Callcc - Fatal编程技术网

使用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我不确定这是一个错误,或者只是我误解了什么。我会开一张票,看看开发人员怎么说。