From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?=) Date: 2008-08-20T11:52:55+09:00 Subject: [ruby-dev:35882] Re: Refactoring of enumerating prime numbers けいじゅ@いしつかです. In [ruby-dev :35877 ] the message: "[ruby-dev:35877] Re: Refactoring of enumerating prime numbers ", on Aug/19 15:21(JST) Nobuyoshi Nakada writes: >なかだです。 >Prime.instance.eachというのは冗長に感じます。どうせならそのイン >スタンス自体をPrimeという定数にしてはどうでしょうか。 私もそうなのかなぁ? と思いつつも, では, 元のクラスの名前はどうするんだ? と思ったりもしてます. >Prime.eachを追加するだけでいいような気もしなくはないです。 > >def Prime.each(&block) > ps = new > if block > ps.each(&block) > else > ps > end >end これって, Yugui さんの第2案: +class Prime + class << self + include Enumerable + # Return the prime cache. + def cache + Generator.cache + end + alias primes cache + alias primes_so_far cache + def each(&proc) + Generator.new.each(&proc) + end + end と近いですが, include Enumerable が入っていません. Enuerable である必 要はなく each だけあればよいってことです? あと, 別件で気になっていることが... 現行でもそうですが, 結構重要なク ラス変数の使われ方をしています. これらのクラス変数の組を概念的に取りま とめたクラスというものも考えられそうと言う気がしています. また, 微妙にスレッドセーフでない気もしたりもしているので, そこも解消で きればなぁ. などと思ったりしています __ ---------------------------------------------------->> 石塚 圭樹 <<--- ---------------------------------->> e-mail: keiju@ishitsuka.com <<---