[#8257] Re: Smalltalk [Re: design patterns] — 助田 雅紀 <masaki.suketa@...>

助田です。

11 messages 1998/06/09
[#8259] Re: Smalltalk [Re: design patterns] — KIMURA Koichi <kkimura@...> 1998/06/10

[#8262] TkGrid do not exist? — Hiramatu Yoshifumi <hiramatu@...>

平松です。

26 messages 1998/06/10
[#8266] Re: TkGrid do not exist? — matz@... (Yukihiro Matsumoto) 1998/06/10

まつもと ゆきひろです

[#8269] Re: TkGrid do not exist? — NAGAI Hidetoshi <nagai@...> 1998/06/10

永井@知能.九工大です.

[#8271] Re: TkGrid do not exist? — NAGAI Hidetoshi <nagai@...> 1998/06/10

永井@知能.九工大です.

[#8375] new MethodIndex — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

21 messages 1998/06/16
[#8447] new MethodIndex — TEI meiki <tei@...> 1998/06/20

こんにちは、鄭です。

[#8448] new MethodIndex — TEI meiki <tei@...> 1998/06/20

再び、鄭です。_o_

[#8418] how to use delegate — gotoken@... (GOTO Kentaro)

ごとけんです

18 messages 1998/06/18
[#8419] Re: how to use delegate — matz@... (Yukihiro Matsumoto) 1998/06/19

まつもと ゆきひろです

[#8420] Re: how to use delegate — gotoken@... (GOTO Kentaro) 1998/06/19

ごとけんです

[#8421] Re: how to use delegate — matz@... (Yukihiro Matsumoto) 1998/06/19

まつもと ゆきひろです

[#8521] hash sort — "Kazuhiro Yoshida" <s95l980@...>

もりきゅうです。

34 messages 1998/06/26
[#8523] hash sort — gotoken@... (GOTO Kentaro) 1998/06/26

ごとけんです

[#8533] Re: hash sort — WATANABE Hirofumi <watanabe@...> 1998/06/26

わたなべです.

[#8534] Re: hash sort — gotoken@... (GOTO Kentaro) 1998/06/26

ごとけんです

[#8536] Re: hash sort — Sinichiro Dezawa <dezawa@...> 1998/06/26

出沢です

[#8538] Re: hash sort — gotoken@... (GOTO Kentaro) 1998/06/26

ごとけんです

[#8539] Re: hash sort — TAKAHASHI Masayoshi <maki@...> 1998/06/26

高橋です。

[#8541] Re: hash sort — gotoken@... (GOTO Kentaro) 1998/06/26

ごとけんです

[#8546] Re: hash sort — Tadayoshi Funaba <tadf@...> 1998/06/26

ふなばです。

[ruby-list:8557] Re: hash sort

From: gotoken@... (GOTO Kentaro)
Date: 1998-06-27 08:51:06 UTC
List: ruby-list #8557
ごとけんです

In message "[ruby-list:8555] Re: hash sort"
    on 98/06/27, Kazuhiro HIWADA <hiwada@kuee.kyoto-u.ac.jp> writes:
>ひわだ@現実逃避中 といいます。こんにちは。
>
>>>> "tadf" == Tadayoshi Funaba writes:
>tadf> 補足がてら、Array#<=> について書いてみます。
>
>(1) (a[1]<=>b[1])*2 + ...
> これは <=> が大概の場合 -1, 0, 1 を返すという経験的事実に基づいている。
>
>(2) nonzero?
> これは <=> が 0 を返すという仕様に基づいている。
>
>(3) Array#<=>
> これは Arrayで定めた(さらにはそのコンテンツで定めた)動作を利用している。

えっと、この切り分けだと、
(1) は Array#<=> を静的に実装している(もしくは実装しようと
してる)。(2) は (elm.type)#<=> の静的な実装を放棄している。
ということなんだと思います。
少なくとも (3) に考えが及ばず (1)、(2) を書いたときはそういう
つもりでした。

たぶん、nonzero? なしではすまない局面というのは静的な <=> が
ほんとに存在しない、もしくは現実的でないときだけなのかも
知れません。

ただ個人的には Enumerable で sort や to_a が用意されていても、
実際は to_a して Array#<=> を使っただけでは sort がキレイに書け
ない局面がそれなりにあって、そういう経験から (1) のような
怪しげな実装も(勝手に^^;;)含めて、問題に応じて <=> をブロック内で
実装しつつ sort してる人が結構いるのではないかなぁと思います。
(3) は、やはりその enumerable の要素を Array#<=> で目的を達成
できる配列に持って行くとこが綺麗に書けるかどうかが問題なので。

もちろん、 Array#<=> は特殊だとか逆にそうでないとそういうことを
主張してるのではないです。enumerable にされているものの中には
現実の要請によって仕方なく sort してしまうけど、枚挙はできても
本来 sort に馴染まないモノがままあることが Array#<=> への思考を
阻害しているという考察です。

# (1) なんてモノを出したことへの長い反省文かも知れない

-- gotoken

In This Thread