RubyでLazyを使いたくても古いバージョンしか入っていない場合の対処。
module Enumerable unless defined? lazy def lazy each end alias :force :to_a end end
…そう。2.x系向けに書いたEnumerable::lazyを使うコードを、とりあえず動くようにするだけのごまかしだ。本当に遅延評価するわけではないので、無限リストなんて使ったら無限ループに陥る。eachはEnumerableのメソッドではないので、lazyをeachのエイリアスにはできない。
0 件のコメント:
コメントを投稿