RubyのEnumeratorでジェネレータを作ったり,遅延評価してみる
Keywords:
RubyにはEnumerableモジュールってのがあって,これをincludeしたオブジェクトは,自身に対して何かしらの反復処理ができるようになる*1.また,その反復処理を用いたEnumerable#mapとかEnumerable#select*2とかEnumerable#reduceとかが使えるようになる.
更に,Enumeratorというものがある.Enumerableがモジュールなのに対して,Enumeratorはクラスなので,インスタンス化できる.また,EnumeratorはEnumerableをincludeしている.このEnumeratorは,外部イテレータ,いわゆるジェネレータとして使える.