まつもと ゆきひろです
In message "[ruby-dev:13765] GenerativeHash"
on 01/07/08, TAKAHASHI Masayoshi <maki / open-news.com> writes:
|
|高橋征義です。
|
|Hash.new([]) でハマる、という(積年の)問題の回避策を考えてみました。
|
|これまでのあらすじとしては、
|http://blade.nagaokaut.ac.jp/cgi-bin/vframe.rb/ruby/ruby-dev/5570?5489-5938
|のスレッドなどが参考になるかと思うのですが、
|
| * デフォルトをブロックで与えることにすればよさそう。
| * そうすると、Hash#default の値はどうする?
| * やっぱProcかなあ。
| * やっぱりHashのサブクラスを定義するべきでは。
| * あるいは Hashのインスタンスに特異メソッドを定義するとか。
|
|というところで終わっていたと思います。
|
|が、個別に特異メソッドを定義するのはいまいち使いにくいので、
|やっぱりサブクラスを作るのがよさげです。そこで、
「大クラス主義」のまつもととしては、サブクラス方式はあんまり
気に入ってません。本体にとり込むんでしたら、問題をもうちょっ
と検討して Hash で対応する方が好みです。
| * Foo#default は Procオブジェクトを返す。
| Foo#default= は Procじゃなきゃエラーを返す。
ブロック付きでnewを呼んだらdefault/default=はエラーにしてし
まうとか。
| * ついでにFoo["a"=>1] みたいなことはできないようにする。
これはなんでそうしたいんでしたっけ?
まつもと ゆきひろ /:|)