怠惰な配列を生成するための次の簡単なコードがあります。
lazy_arr = Enumerator.new { |y|
i = 1
loop {
y << i
i+=1
}
}
p lazy_arr.take(5)
公式のRuby1.9.3では、出力は[1,2,3,4,5]
、私が欲しいものです。
しかし、ルビニウスでは、エラーが発生し、列挙子定数が見つからないことがわかります。
それで私はそれを調べて、列挙子がEnumerable
の代わりにモジュールで定義されていることを見つけました、そしてkernel
それが生成されるとき、それは括弧内にいくつかの引数を必要とします:http:
//rubydoc.info/github/evanphx/rubinius/master/Enumerable/Enumerator
より多くの引数が必要なため、またはに変更しようとしましたが、どちらも機能しEnumerator.new
ませEnumerable::Enumerator.new
ん。include Enumerable
上記の例をRubiniusで行うにはどうすればよいですか?公式とRubiniusの両方でコードを機能させる方法はありますか?