[#8824] [REQ] Integer#{hex,dec,oct,bin}, String#bin — gotoken@... (GOTO Kentaro)

ごとけんです

38 messages 2000/01/05
[#8839] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — matz@... (Yukihiro Matsumoto) 2000/01/06

まつもと ゆきひろです

[#8842] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — gotoken@... (GOTO Kentaro) 2000/01/06

ごとけんです

[#8843] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — matz@... (Yukihiro Matsumoto) 2000/01/06

まつもと ゆきひろです

[#8844] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — gotoken@... (GOTO Kentaro) 2000/01/06

ごとけんです

[#8846] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — matz@... (Yukihiro Matsumoto) 2000/01/06

まつもと ゆきひろです

[#8847] Re: [REQ] Integer#{hex,dec,oct,bin}, String#bin — gotoken@... (GOTO Kentaro) 2000/01/06

ごとけんです

[#8893] Re: [ruby-list:20142] Re: Range expansion? — Akinori MUSHA aka knu <knu@...>

 knuです。ruby-listから舞台を移しました。

13 messages 2000/01/09

[#8980] 1.4.3 patch for near-future *BSD IPv6 support — Jun-ichiro itojun Hagino <itojun@...>

近い将来の{Net,Free,Open}BSDにはKAME IPv6 stackが統合されています。

17 messages 2000/01/20
[#8981] Re: 1.4.3 patch for near-future *BSD IPv6 support — Jun-ichiro itojun Hagino <itojun@...> 2000/01/20

> それから、

[ruby-dev:9020] Re: sort

From: gotoken@... (GOTO Kentaro)
Date: 2000-01-25 23:08:49 UTC
List: ruby-dev #9020
ごとけんです

In message "[ruby-dev:8998] Re: sort"
    on 00/01/22, Koretsugu Daigoro <tmmcross@hk.airnet.ne.jp> writes:

>たとえば(ごとけんさん提案の sort を、えーと、仮に gsort と書くと)
>
>  ary = [{ "foo"=>1, ... }, ...]
>  ary.gsort{|e| e["foo"]}
>
>のときに e["foo"] が一致する要素が複数あると
>比較できなくて死んでしまうので、
>
>  ary.sort_with_index{|e, i| [e["foo"], i]}

なるほどなるほど。

>「要素そのものは Comparable ではないが
>ブロックによる評価でソートしたい」
>ときの、
>「ブロックによる評価が一致しちゃって生で比較しようとして死亡」
>という悲しい出来事を回避するためには常に stable sort しておくのが
>いいかもしれません。
>
>と言うわけで、こうすればすべて丸くおさまるかも。
>
>  def gsort!
>    each_with_index{|e, i| self[i] = [yield(e), i, e]}
>    sort!.filter{|e| e.pop}
>  end

よいよいよい、よいですね、これ。比較で一致したら、indexを見
るということで。

ただ array_with_index 自体は組み込みにするにはちょっと基本的
すぎるような気がします。

>……でも文字列を辞書順に並べたいときとかは
>
>  ary.gsort{|e| [e.downcase, e]}
>
>より、単に、
>
>  ary.gsort{|e| e.downcase}

ふーむ、まぁ、[e.downcase, e] くらいはいいでしょう。僕のもと
の提案だと単に記述の経済性と高速化だけだったのですが、一般の
配列要素は比較不能というのも前提条件に加えた方が説得力あると
思いますので。

あと名前ですね。sort_by と sort_wrt ってのがあがってますが、
賛同や対案は無いですか?? なお stable_sort は確実に誤解され
そうなのでよくないでしょう。

-- gotoken

In This Thread