、我々はすべての正の整数を生成するには、このような何かを書くことができます:Rubyで発電機を書くには? Pythonでは
def integer():
count = 0
while True:
count += 1
yield count
は、Rubyで同様の発電機を書くための方法はありますか?
、我々はすべての正の整数を生成するには、このような何かを書くことができます:Rubyで発電機を書くには? Pythonでは
def integer():
count = 0
while True:
count += 1
yield count
は、Rubyで同様の発電機を書くための方法はありますか?
それは非常に似ています:
integer.take(20).inject(&:+)
# => 190
あなたは怠惰列挙子をしたい:このように使用することができます
def integer
Enumerator.new do |y|
n = 0
loop do
y << n
n += 1
end
end
end
。 Ruby 2.3.1(少なくともRuby 2.2.0まで)では、Enumerator::Lazyで混合して自分で作ることができます。
しかし、必要なものが無限の整数ストリームであれば、Rangeオブジェクトを使うことができます。例:
(1 .. Float::INFINITY).take 10
#=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]