From: EGUCHI Osamu Date: 1999-03-15T07:05:35+09:00 Subject: [ruby-dev:6318] Re: Bigfloat [compare to NaN] えぐち@エスアンドイー です。 >>> In message [ruby-dev:6317] Re: Bigfloat [compare to NaN] On Mon, 15 Mar 1999 04:35:19 +0900, "=?iso-2022-jp?B?GyRCSy1KIRsoQg==?=" said: toyofuku> 豊福@パパイヤです。 toyofuku> toyofuku> えぐちさん toyofuku> > % ruby -rM -e 'a = "x" + 1 / 2 * "y";p a; puts a' toyofuku> > (div (add 0 (mul 2 "x") "y") 2) toyofuku> > (2 * x + y) / 2 toyofuku> > こんな事が出来るライブラリを作りました。 toyofuku> toyofuku> 面白い。ちょっと遊んでみましたが negative関係が toyofuku> おかしくないですか。 toyofuku> p (2 - 1) ==> 3 toyofuku> p (- "x") ==> "x" toyofuku> p (Neg(1)) ==> 無限ループ toyofuku> と私の環境ではなりました。 これですが、 % ruby -v ruby 1.3.1 (1999-03-11) [i386-freebsd2.2.8] では、再現できませんでした。 バージョンは幾つでしょうか? toyofuku> > 式の変数に文字列を使った副作用で、普通の Ruby の toyofuku> > コードとの互換性が損なわれています。 toyofuku> > と言うか、すでにこれを require すると Ruby とは toyofuku> > 言えない挙動をします。 toyofuku> toyofuku> Matrixクラスのような coerce を持った Varクラス作って toyofuku> 整数や文字列側の演算は override しないというのはどう toyofuku> ですか。書き方はちょっとシンプルさがなくなって 1 + "x" toyofuku> が 1 + Var("x") みたいになりますが。 toyofuku> (本当にできるかどうか確認していません (^_^;)) 変数は、この方向が有効そうですね。 整数は、Fixnum#coerce の再定義でなんとかなるかと 思いましたが、予想外に苦戦しています。 えぐち P.S. これから山口県方面に出張します。 メールを読む頻度が落ちますが、御承知下さい。