[#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:8546] Re: hash sort

From: Tadayoshi Funaba <tadf@...>
Date: 1998-06-26 13:37:12 UTC
List: ruby-list #8546
ふなばです。

nonzero? と Array#<=> は、永井さんが始められた議論のなかで、どちらも僕
が提案したものですが、僕が <=>  のアイディアに辿りついたときに、これが
正解かな、と思ったので、自分が考えた nonzero? も亡きものになる、と思っ
ていました。

しかしながら、意外にも nonzero?  は生き残り、それどころか Array#<=> よ
りも好んでつかわれているような気配気さえするわけです。これには少しおど
ろいています。

当初は nonzero? はもういらない、と思っていましたが、今はそれなりに意味
もあるのだろうと考えなおして、ひとまず納得したことにしているのですが、
やはり Array#<=> を第一に考えたいと僕は思っています。 その理由は、以前
に議論したことなので繰り返しません。

趣味の問題もあるだろうし、nonzero?  をつかったほうが速いこともあるかも
しれないから、絶対にこれがイイとはいえないのですが、今回の例でも、

array.sort!{|a,b| (b[1] <=> a[1]).nonzero? or b[0] <=> a[0]}

と

array.sort!{|a,b| b.reverse <=> a.reverse}

とでは大して速度に差がなさそうだし、後者のほうが判り易いように思います。
ところで、そもそも、今回の例は速度のことを考えても、やりかたがよろしく
ないということもできるわけです。

array = array.collect{|x| x.reverse}
array.sort!
array.reverse!
array = array.collect{|x| x.reverse}

で、こんなかんじでもいいんじゃないかあと思うんですが。あとは、ほんの少
しでも Ruby の都合を考える気持があれば、もっともっと速くできる可能性は
あるでしょう。

# しかし、この関連の話題って結構多いみたいだなあ。

--Tadayoshi Funaba

In This Thread