From: sinara@... Date: 1997-01-30T18:13:32+09:00 Subject: [ruby-list:1978] Re: [Dist] Mutex module 原です。 > けいじゅ@SHLジャパンです. > >あれ、Array は id になってしまったんですね。一つ反論を。 > ... > >と書きたい。つまり Array はスカラーに対する自然な拡張の > >ベクトルという意味があるわけです。 > > うーん. この用途であるならば, ArrayよりもStructを用いる方が向いている > と思わないでもないですが... なるほど!最初から構造が決まってはずだから、全くその通りですね。 Struct は一度設計(Struct.new)しなければならないのが手間ですが。 > でも, Arrayがベクトルと考えられるという意見は, 私も賛成しなくもないで > す. > > そのためには, Arrayをベクトルとして使いやすくするための機能をもうちょっ > とそろえた方が良いかなと思っていますけどもね. 私はベクトルといっても、加法などが定義されていなくて、単に「各要素が 全て一致する時、全体が一致する」という機能だけに注目したわけですが。 > >id で区別してしまうなら、べつにハッシュに記録しなくても > >配列に push して記録すればいいのではないですか? > > そんなことはないですよ. rubyのハッシュはkeyからvalueを引くためのもので > すから, > > anArray->aValue > > とある配列から対応する値を取り出したければ利用する価値があります. 全くその通りです。 > 私が一般のオブジェクトをハッシュのキーとして利用するのはこの手が多く, > idで比較してもらう方が嬉しいことが多い(その方が高速)ことも確かなのです > が... 私の感じではなんとなく、オブジェクトと1:1対応して(すぎ?)いる id でハッシュを引くのは手軽だけどもったいないような気がするんです。 そのハッシュってところどころ間の抜けた配列みたいなもんですよね。そ れなら、オブジェクトの生成順に自分で番号を振って番号だけで管理した 方が高速ではないかしら? > ただ, idをキーとして用いたければ obj.idをキーとして登録して用いれば良 > いわけですし, その方がオブジェクトの識別子をキーとしていることが明確に > なっていて良いともいえます. ああ、結局そういうことですね。 > ただ, この場合, HashもArrayと概念的にはあまり違わないわけですから内容 > で比較するようにすべきですね. ううむ。考えてみようっと。