From: matz@... (Yukihiro Matsumoto) Date: 1998-04-07T16:04:48+09:00 Subject: [ruby-dev:2138] Re: cmp operator まつもと ゆきひろです In message "[ruby-dev:2135] Re: cmp operator" on 98/04/07, 石塚圭樹 writes: |けいじゅ@日本ラショナルソフトウェアです. |>あと,assocとrassocも実装できますが,これはEnumerableでもできるんだけ |>ど意味無いからArrayにあるわけですから,Indexableにうつす意味もないで |>しょう. | |うーん. 意味ない理由が良く分かりませんが?? いや,別に必要ないんじゃないって以上の意味は無いですけど. |>まずIndexableを作ることの是非はともかく,もし仮に作ったとし |>てもArrayにIndexableをMin-inしてもメリットはないので(Arrayが |>遅くなるだけ)そういうことはしないでしょう. | |これは, Arrayにすでにあるメソッドを消さなければ問題ないでしょう. 前部のメソッドが再定義されるモジュールをincludeしようという ことはIndexableを「Indexできるもの一般を表すくくり」として使 い,kind_of? などで判定するのに使おうということでしょうか? 私は動的型の言語でそういうクラス/モジュールの使い方をする必 要は無いと思ってます.せっかくプロトコルさえ一致すれば継承関 係を気にしないで使えるというメリット(見方によってはデメリッ トではありますが)を自分で潰す必要は無いのでは? |>となると,Indexableを組込みにするメリットはあんまり無くて, |>もし書くとしてもRubyで書いて標準ライブラリに入れるのがせいぜ |>いじゃないですかね. | |sortが遅いんですよね(^^;;; rubyで書くと. やってみないとはっきりしたことはいえませんが,Indexableだけ を使ったsortも結構遅いと思いますよ.結局今のように配列に変換 した方が速いんじゃないですかねぇ.ソートしようとするもののサ イズにも寄りますが. |そんなわけでIndexableだと, 外部イテレータが実現できますので, そういっ |た意味ならrubyの組み込みクラスでも嬉しいことが多いのでは? それはそうなんですけど,Indexableでなくても外部イテレータは 作れるわけですから,外部イテレータができるからIndexableとい うのは拙速では.もし仮に外部イテレータをなんらかの形で導入す ることを考えたとしても,それはIndexableなものだけで本当に良 いのかという点をまず検討する必要があるのではないかと思います. まつもと ゆきひろ /:|)