Slide 9
Slide 9 text
Enumerator.produce
を使う
Enumerator.produce
を使う
Enumerator.new
を使うと実現できるがやや冗長
そこで という便利メソッドを使う
これは与えられたブロックを呼び出し続ける Enumerator
を返す
Enumerator.produce
# 0, 2, 4, 6, 8...
と無限に続ける Enumerator
を定義
nums = Enumerator.produce(0) { |it| it + 2 }
# take
を使って先頭から4
つの要素を取り出す
pp nums.take(4)
# => [0, 2, 4, 6]
#
ランダムな要素を返す Enumerator
を定義
rand = Enumerator.produce { rand(10) }
# 10
個のランダムな要素を取り出す
pp rand.take(10)
# => [1, 1, 6, 3, 4, 0, 1, 9, 1, 1]