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 件のコメント:
コメントを投稿