From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?=) Date: 2008-08-22T23:37:52+09:00 Subject: [ruby-dev:35917] Re: Complex & Rational けいじゅ@いしつかです. In [ruby-dev :35879 ] the message: "[ruby-dev:35879] Re: Complex & Rational ", on Aug/19 20:03(JST) Tadayoshi Funaba writes: >> こうでなくて, T_FIXNUM, T_BIGNUM, T_FLOAT, T_RATIONAL だけにかぎらず, >> other が real?(scalar?) だったら, >> return f_complex_new2(CLASS_OF(self), >> f_add(dat->real, other), dat->image); >> できると言いたいわけなんですよ. >ああ、それはそうです。[ruby-dev:27877] でも触れられているものですね。 そうです. >> 両者とも正規化しない方がよい気がしてきました. to_sで "1" が返ると整数 >> の1と勘違いしそうですものね. >そうしましょうか。 はい. >Scheme のリテラルとして見れば、Scheme では i の前にあるのは、実数 (有理 >数も含む) ということは、BNF で確認できます。これをみたところで解釈に無 >理や不自然さは感じません。 そういう意味では, 不自然さはないと思いますが... >この形式は、石塚さんの Smalltalk の素養が影響しているのかな、と思ったり >しますが、これまでのところ、この場合の括弧は必要だとはいえないように思 >います。 確に, Smalltalkの影響はあったかも知れないです. Smalltalkでは, printOn: したものを, そのまま workspace 上で perform できるように表現 することも多いですので. >> 表現的には一貫性がありますよね. あとは, 上記(A)の話だけですが, scheme >> 以外ってどうなっているんでしょうかね... > >Scheme 以外だとあまり思いつかないですね。手元の Squeak では、 >"(1/3) + (1/3) i" ってなりましたけど。 でしょうね. 2項演算子に強弱がないので, 上述のようにperformしたいなら, そう表現されると思います. >石塚さんのいわれるように、inspect を再帰的につかう、というのは、この場 >合にも当て嵌められることで、Complex からは、必要以上にその内容に踏み込 >まず抽象的にあつかっておくべきだと思うし、そうすると、上のような表現に >ぴったりしますね。 まあ, それもそうですが, to_s の場合, inspectとは違いけっこういい加減な 文字列変換を行っていることが多いので, 括弧はなくていいんじゃないでしょ うか. >> scheme は 1/3+1/3i って atom で元々各個つけられないですし... こうであ >> るべきと考えたのか, これしか表現のしようがなかったのか判断できないです >> し... >ひとつの字句ですが、i の優先度は低い、と考えればいいのかも。 この考えはちょっと無理があるかも(^^;; __ ---------------------------------------------------->> 石塚 圭樹 <<--- ---------------------------------->> e-mail: keiju@ishitsuka.com <<---