From: Yukihiro Matsumoto Date: 2009-07-23T02:14:00+09:00 Subject: [ruby-dev:38870] Re: 複素数リテラルについて まつもと ゆきひろです In message "Re: [ruby-dev:38852] Re: 複素数リテラルについて" on Wed, 22 Jul 2009 21:54:50 +0900, Tadayoshi Funaba writes: |> * 互換性はどうか。大丈夫のはずだが、見落としは | |2.0 では、1/2 #=> (1/2) や 3i #=> (0+3i) などと書けようにできたらいいと |個人的に期待しています。そこで、少し微妙なのは scheme のような感覚で |1/3i と書くと、1/3 もリテラルであれば問題ないですが、そうでないと、結果 |が (-1/3)i となってしまいます。仕方ががないかもしれませんが。 2.0でも、有理数リテラルを導入する予定はありません。というのも、 1/a は式で 1/2 はリテラルであるという状態を導入したくないから です。この辺がSchemeとは違うところ。 とはいえ、1/3i が (1/3)*1i ではなく、1/(3i) になってしまうの は、うれしくないことなのかもしれませんね。 |有理数を含め、2.0 でどういうものを提供したいか判らないと、複素数リテラ |ル (虚数リテラル?) をどうすべきかはっきりとは言えないような気がします。 すいません、虚数リテラルですよね。うっかりしてました。 |python が何故 j かは知りませんが、octave などでも j と書いていいみたい。 |工学の流儀ということなのかもしれません。J (apl の後継の) では、複素数を |1j3 のように書けるようです。 これは複素数リテラルですね。興味深い。 |> * 複素数化するメソッドNumeric#iは要らないか | |1.9.1 の開発段階で却下されています。 [ruby-dev:36349]からのスレッドを読み返してみましたが、却下さ れているのは Complex#im (とNumeric#im)ではないですかね。ふな ばさんは[ruby-dev:36421]で「リテラルが提供されると存在意義が 薄れる」とおっしゃっていましたが、実際に作ってみた感じでは 「3iは書けるのに n・i は n * 1i になる不合理」を感じました。 虚数リテラルはうれしいのはうれしいですが、どちらかだけを選べ と言われたら Numeric#i を選びますね、私なら。で、たぶん Complex#i は undef する。 |ビルドできなかったので、パッチの内容はわかりませんでしたし、キーノート |も聞いてないので判らないですが、2.0 のための議論を始めようということな |のでしょうか。過去に繰り返された議論とはいえ、かなり関心が低いように思 |えたのに、なぜこのリテラルの話が今唐突に出てきたのか、不思議な感じです。 まあ、2.0に向けての議論の一環ですが、あまりじゃまにならないよ うなら1.9.2でも間に合うかな、とも思いました。急ぐようなものじゃ ないんで、ゆっくり考えようという結論が出ても、それはそれで構 いませんが。 まつもと ゆきひろ /:|)