From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1997-11-06T00:37:37+09:00 Subject: [ruby-dev:801] Re: "".succ is "\377" けいじゅ@日本ラショナルソフトウェアです. いきなり面白そうな問題が出てきましたねえ... In [ruby-dev :00796 ] the message: "[ruby-dev:796] Re: "".succ is "\377" ", on Nov/05 12:19(JST) matz@netlab.co.jp (Yukihiro Matsumoto) writes: >まつもと ゆきひろです >|そもそも "".succ って何と言われると身もふたもないけど, >|"".succ は "" なったほうがいいかなと思うので, ちょっといじっ >|てみました. >うーん.Perlだと""に++を適用すると1になりますね.これは多分, > > ""の数値的な値は0 > 0の次は1 > >という連想なんでしょうが.rubyではどうあるべきでしょう? >""はsuccに対して元であると言うことでも良いとは思いますが. きっと, 単位元といいたかったのですよね? つまり: "".succ == "" 私も, "".succは * "" * 0 * 1 * \001" のどれかかなとは思うんですが, 数システムとしてどあるべきか検討しますの で一日待って下さい. ちょっと考えただけをここに書きます,. 代数的立場: 数の0のはなしを例に考えると, 0は無を表すのであって無位を表している(つ まり, 10における0みたいなもの)わけではありません. そういう意味では, "" と似ていると思います同じです. そう考えると後半の3つが怪しいんだけど, ""の次として合理的に適当なものが... 解析的立場: また, 桁数の見方からすると, ""は0桁を表しています. "0"などは1桁ありま すね. そうすると, LOGxx str + 1 == 桁数 と考えると LOGxx "" == -∞です から, "".succ == "" も納得できます... ただ, このモデルを採用する場合は, マイナスの数の時の動作を改めないと駄目ですが... rcb0> "-9".succ "1-0" はいただけない... "-10"になって欲しい... # この動作は深い意味があるんですかねえ... PS. succと0さえあれば, すべての数と四則演算は定義できます. さらに大きく広 げれば数学のモデルも作ることができます. そのぐらいこの問題は根が深いん ですよ!! つまり, "0"...をruby自然数とすれば, ruby有理数, ruby実数... ruby代数, ruby解析学と... __ ................................石塚 圭樹@日本ラショナルソフトェア... ----------------------------------->> e-mail: keiju@rational.com <<---