From: Takaaki Tateishi Date: 2002-01-05T18:25:22+09:00 Subject: [ruby-dev:15641] Re: rb_hash_initialize At Sat, 5 Jan 2002 13:52:55 +0900, nobu.nakada@nifty.ne.jp wrote: > > このHashと似た機能を提供するようなキャッシュ付きProcのためにク > > ラスを追加することはrubyとしては許容できるものでしょうか? > > それは組み込みとしてですか? 数行で済むので要らないのでは。 できれば組み込みが良いですが,ライブラリとしてでもいいかも しれないですね.引数の件も含めると僕が最初に想像していたも のはこんな感じになると思います. class Cash < Hash private alias hash_aref [] alias hash_aset []= public def initialize(*args) super(*args){|h,key| hash_aset(key,yield(*key))} end def call(*args) hash_aref(args) end def define(*args) v = args.pop hash_aset(args,v) end alias [] call alias []= define end def cash Cash.new{|x| yield(x)} end -- Takaaki Tateishi