From: gotoken@... (GOTO Kentaro) Date: 1999-10-17T23:25:27+09:00 Subject: [ruby-list:17777] Re: [math] Re: <=> In message "[ruby-list:17735] Re: [math] Re: <=>" on 99/10/16, Koretsugu Daigoro writes: >「数学」と大上段に構えるのはやりすぎだったかもしれません。 >でも、私の語彙では数学用語を使わないとうまく説明できなかったものですから……。 なんかかみついたみたいでごめんなさい __; 個人的には-1,0,1がそれほどユニバーサルな値とはやっぱり思わな いです。互換性を別にすると用法的には -1, false, 1 とかでも僕 は違和感ないです(比較不能は例外とか)。事実上、<=> の結果を本 質的な意味で整数として利用することはないと思います。 >> 文字列に辞書式順序をいれるのは割と自然と思いますが、別 >> に文字列の間に整数で表現されるような「差」があるわけではない >> ですよね。succでは到達できない文字列もあるし。 > >たとえば[a-z]で構成される文字列は26進数みたいなもの >(正確にはちょっと違う)だと思えば、 >……っていうのも乱暴すぎでしょうか? んー、たとえば多バイト文字列ってのもありますよね。 もちろん、これつぐさんのおっしゃることも正しいでしょう。実際 Rubyの文字列はオクテット列にすぎないので、各文字列に順序と整 合する一意な有理数を割り当てることは出来ます: class String require "rational" def rank # (self <=> other) == (self.rank <=> other.rank) res = i = 0 each_byte{|c| i+=1; res += (c+1)*Rational(1,257**i)} res end end しかし配列の場合には(仮に全順序なモノに限っても)このような値 は思い付きません。 あと、Rubyに最もありふれた半順序の例は継承関係でしょう。 >うーん。 >どうなんでしょう? >特殊といえば特殊だし、 >一つの例に過ぎないといえばそうだし。 まぁ特殊とか一般とかはわりと状況に依存する概念なので、文脈な しでは何ともいえないけど、順序の文脈では結構特殊と思うです。 -- gotoken # 最近の肴: デデキントの切断は位相ではなく順序に対する操作に # 思える。しかし、完備化と一致するようにも見える。何故か。