けいじゅ@日本ラショナルソフトウェアです. In [ruby-math :00572 ] the message: "[ruby-math:00572] Re: complex.rb problems ", on Aug/17 07:13(JST) 正木 功 writes: >正木です。 >|ただ, Math::sqrt は必ず結果は Float としてよいんじゃないかしら? Math系の >|メソッドをどうするかとも関わりますけどね... > >Float を使う method は >Float.sqrt >のようにすると分かりやすいと思いますが。 それはいい案かも. 2項演算も結果の型が明示的に指定できる方法があるといい んですけどね... いまって, パラメータの型で指定するしか方法ないですからね. >|いまのRubyの方針だと, これはバグじゃなくてそのメソッドの仕様なんでしょう >|ね. つまり, なるべくしてなっていると... つまり, Matrix#det と同じですね. > >こういう言い方をすると世の中に bug というものはなくなります。 >computer はいつも program の仕様通りに実行するだけですから。 >作った人或いは使う人の(正当な)意図と違う動作をする場合を bug と呼ぶのだと >思っていました。 この問題は.... bugの定義は 要求仕様の通りに動作しないこと でしょう. ただし, この場合の要求仕様は私の頭の中にあるだけで, 文書として は存在していない. で, ユーザにとって参照できるものはリファレンスマニュア ルになると思いますが, そんなことは書いていない. ということで, この場合は、リファレンスマニュアルのバグと言うことでしょう か. そういう厳密な解釈はどうでもよいとして、こういうタイプのプログラムって難 しいですよね、普通のシステム開発では、お客さん(お金を出す人)がいるわけで、 その人がウンと言ったものが、要求仕様となるわけですが、この場合お客さんが いませんものね. Ruby本体の機能追加や変更に関しては、こうやってステークホルダ(利害関係者、 その仕様やプログラムの出来不出来に利害関係のある人)達が意見を言い合って 調整しているわけですが, ライブラリ系は誰かがつくったらそれがそのまま仕様 になってしまいますからね. 本題からハズレてしまいました(^^;;; >|やっぱ, Rationalを組み込み(もしくはそれ相当)にすべきだよなぁって, 結論に >|なる. > >大賛成です。 >ついでに Rational をもう少し早くしてもらえると助かります。 >なんとなくですが (Bignum の)gcd の計算で手間取っているような気がします。 >gcd だけでも C で書き直したら早くならないでしょうか? というか、組み込みにするなら, 全部Cになるんじゃないかしら? というかその ほうがよいでしょう、immutableなオブジェクトにしたいですし。 # だれか, C版のRational書いていた人がいたような?? >|じゃ, 交換にFloat外してRationalを入れる. >これも賛成です。 この辺が、その人のコンテキストを表していますね(^^;;; これは、リテラルの 問題とかもありますので、あまり現実的じゃなさそうですが. # 最近 int / int -> int 派の重鎮達が顔を出さないなぁ... お盆休暇かな? __ ..............................石塚 圭樹@日本ラショナルソフトウェア... ----------------------------------->> e-mail: keiju / rational.com <<---