[#1582] [BUG] Regexp — sinara@...

原です。あけましておめでとうございます。

16 messages 1997/01/06

[#1705] 正規表現 単独の ? — Sinichiro Dezawa <dezawa@...>

出沢です

14 messages 1997/01/15

[#1771] rectangle of canvas widget — Noritugu Nakamura <nnakamur@...>

18 messages 1997/01/19

[#1788] Text of TkCanvas — Noritugu Nakamura <nnakamur@...>

28 messages 1997/01/20
[#1800] Re: Text of TkCanvas — matz@... (Yukihiro Matsumoto) 1997/01/21

まつもと ゆきひろです.

[#1802] Re: Text of TkCanvas — Noritugu Nakamura <nnakamur@...> 1997/01/21

[#1806] Re: Text of TkCanvas — matz@... (Yukihiro Matsumoto) 1997/01/22

まつもと ゆきひろです.

[#1816] Re: Text of TkCanvas — Noritugu Nakamura <nnakamur@...> 1997/01/22

[#1819] Re: Text of TkCanvas — matz@... (Yukihiro Matsumoto) 1997/01/22

まつもと ゆきひろです.

[#1865] ruby-1.0-960124 available — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

25 messages 1997/01/24
[#1878] Re: ruby-1.0-960124 available — WATANABE Hirofumi <watanabe@...> 1997/01/27

わたなべです.

[#1879] Re: ruby-1.0-960124 available — matz@... (Yukihiro Matsumoto) 1997/01/27

まつもと ゆきひろです.

[#1880] Re: ruby-1.0-960124 available — WATANABE Hirofumi <watanabe@...> 1997/01/27

わたなべです.

[#1890] Re: ruby-1.0-960124 available — matz@... (Yukihiro Matsumoto) 1997/01/27

まつもと ゆきひろです.

[#1926] [Dist] Mutex module — keiju@... (Keiju ISHITSUKA)

けいじゅ@SHLジャパンです.

81 messages 1997/01/28
[#1929] Re: [Dist] Mutex module — matz@... (Yukihiro Matsumoto) 1997/01/29

まつもと ゆきひろです.

[#1934] Re: [Dist] Mutex module 1997/01/29

けいじゅ@SHLジャパンです.

[#1935] Re: [Dist] Mutex module — matz@... (Yukihiro Matsumoto) 1997/01/29

まつもと ゆきひろです.

[#1938] Re: [Dist] Mutex module 1997/01/29

けいじゅ@SHLジャパンです.

[#1940] Re: [Dist] Mutex module — matz@... (Yukihiro Matsumoto) 1997/01/29

まつもと ゆきひろです.

[#1944] Re: [Dist] Mutex module 1997/01/29

けいじゅ@SHLジャパンです.

[#1947] Re: [Dist] Mutex module — matz@... (Yukihiro Matsumoto) 1997/01/29

まつもと ゆきひろです.

[#1960] Re: [Dist] Mutex module — sinara@... 1997/01/30

原です。

[#1969] Re: [Dist] Mutex module 1997/01/30

けいじゅ@SHLジャパンです.

[#1978] Re: [Dist] Mutex module — sinara@... 1997/01/30

原です。

[#1986] Re: [Dist] Mutex module 1997/01/30

けいじゅ@SHLジャパンです.

[#1989] Array as list/tupple (Re: [Dist] Mutex module) — matz@... (Yukihiro Matsumoto) 1997/01/31

まつもと ゆきひろです.

[#2008] [Request] static var? (Re: Array as list/tupple) — sinara@... 1997/01/31

原です。

[#1953] open (file descriptor) — j_kuro@... (Jun Kuroda)

黒田です.

16 messages 1997/01/29

[ruby-list:1987] Re: [Dist] Mutex module

From:
Date: 1997-01-30 20:27:45 UTC
List: ruby-list #1987
けいじゅ@SHLジャパンです. 

In [ruby-list :01981 ] the message: "[ruby-list:1981] Re: [Dist] Mutex
module ", on Jan/30 18:58(+0200) sinara@blade.nagaokaut.ac.jp writes:

>内容一致の方はキーを失い安いけど、ハッシュを引く時はむしろ逆で
>すよね。 id の方は厳しい。やっぱり、
>
>hash[ [0,1] ] = 1
>p hash[ [0,1] ]      # ==> nil
>
>という状況は避けたい気がする。

はっきりさせるためには, もうちょっと原則論から攻めた方がよいですね. ハッ
シュ値がマッチするのは, 基本として==ですから値が等しい時です. つまり,
2つの配列の値が等しいとは, どういうことかということを考えれば良いでしょ
う.

2つの配列が等しいとは:

1. 内容, つまり, 全ての要素が等しい
2. オブジェクトid, つまり, オブジェクトが等しい.

>やっぱり食いかけたパンの値段が値段表に載ってないのは当たり前で
>は?ちょっと大きさの違うパンに値段がつかないのは表の定義が悪い。
>パン一個一個に値段をつけるのはくど過ぎるのではないでしょうか?

若干例えが悪いような...

ある1つキーウィに値段がついていたとして, それが数日たって食べごろ(オブ
ジェクトの状態の変化)になったら値段が分からなくなっていたという感じで
しょうか... 

# 腐りかけになると値段が下がるという話しもありますが(^^;;;

同じオブジェクトなのに状態の変化によってハッシュが引けなくなるのは問題
です. 

とここまで考えてきて, 文字列はフリーズされているということを思い出しま
した...

いまの仕様だと以下のようになりますね?

h = Hash.new
a = "foo"
h[a] = "bar"
a.concat "baz"
h[a] #--> nil

つまりオブジェクトの同一性よりも値(それも登録された時の)が重要視されて
いるわけですね.

このこと自身に文句をいうつもりはありませんが, 対称性からいって, 他のオ
ブジェクトをキーにする時もちゃんと値をフリーズしないといけないですね.

そのためにはオブジェクトのコピーをキーにしなくてはならないと思うのです
が, rubyでは, o1 == o2 => o1.hash = o2.hash は求められていますが, 
o1 == o1.copy は求められていましたっけ?

とはいったものの, 一般のオブジェクトのコピーをキーにするのはコストがか
かり過ぎますよね. 一番いいのは, キーをフリーズするかどうかをオプション
で指定できるとよいのですが...

h = Hash.new(:key_freeze)

>キーとキーと比較されるオブジェクトがごっちゃになってるなあ。
>値段表としてサンプルに使ったパンに手をつけるべきでない、とい
>うべきか。(これは異論もあるでしょうね。)

ハッシュ(の仕様)とは関係はないのですが, ちょっと気になったもので...

オブジェクト指向の世界ではオブジェクトの状態は変わり得るというふうに考
えるべきだと思います.

原さんのここでの意見を聞いていると, オブジェクト指向ベース(ruby)の考え
方ではなくて値ベース(perl)で考えているようにも感じられます. オブジェク
ト指向では値よりもオブジェクト, すなわちオブジェクトのアイデンティティ
を基本に考えるべきだと思います.

# これは前に議論のあった, 変数とオブジェクトの問題に通じていると思いま
# す. 

>> これを踏まえて,以下のいずれが望ましいでしょう?
>>   (a) Hash/Arrayともidで一致を取る
>>   (b) Hash/Arrayとも内容で一致を取る
>>   (c) Hashはidで一致を取る/Arrayは内容で一致を取る
>>   (d) Hashは内容で一致を取る/Arrayはidで一致を取る
>>   (e) 上記以外のなにか(ってなに?)
>なんとなく (c)。Hash はオブジェクトではなく、関数だと割り切る。:-)
>
>Hash を Hash に入れたくなる様な例がほしい。

ハッシュを関数と考えるならば, 関数からの写像がまさにハッシュをハッシュ
に入れた例ですよね. 数学の言葉を使えば, 汎関数ですね(^^;;;

それはさておいて, 最初に述べたことをもう一度繰り返しますが, この場合2
つのハッシュの値が等しいとはどういう場合かということで考えれば問題はもっ
とはっきりすると思います.

2つのハッシュが等しいとは:

1. 内容, つまり, 全てのkeyとvalueが等しい
2. オブジェクトid, つまり, オブジェクトが等しい.
  
私の意見は:

配列の場合もハッシュの場合も本質的には変わらないので, idで比較するにし
ても, 内容で比較するにしても統一する方が後々間違いの原因にならないです
むだろうと思うということです. 

__
.....................................石塚 圭樹@SHLジャパン(株)...
------------->アドレス変わりました!! e-mail: keiju@shljapan.co.jp <----

In This Thread