けいじゅ@日本ラショナルソフトウェアです.

In [ruby-list :20180 ] the message: "[ruby-list:20180] Complex#im ",
on Jan/12 18:16(JST) GOTO Kentaro writes:

>ごとけんです

>>1.im.im --> Complex(0, Complex(0, 1))
>>
>>これはありなんでしょうか?
>>虚数部が複素数,なんていう複素数はあるのでしょうか?
>>それとも,こんなことやっちゃダメなんでしょうか?
>
>これは御指摘の通り間違ってますね。しかし、im が何を狙ったも
>のなのかわからないので何とも言えません。
>
>ただ、定義が、
>
>  def im
>    Complex(0,self)
>  end
>
>なので、num.im == Complex::I * num を狙っているような気がし
>ます。

そう. それを狙ったんです. 元々の用途は,

  1 + 1i 

とかをリテラルっぽく表現したいなと, このメソッドがあれば,

  1 + 1.im

って書けるでしょ.

>この場合、定義を
>
>  def im
>    Complex::I * num
>  end
>
>と書けばすみますが、Complex() の第二引数が複素数の場合の挙動
>はなんにせよおかしいので、それを直す方が本質のようです。パッ
>チつけます。

(中略)

こっちのパッチがよいですね.

In [ruby-dev :8921 ] the message: "[ruby-dev:8921] Re: Complex#image
(Re: [ruby-list:20176]) ", on Jan/12 21:25(JST) GOTO Kentaro writes:

>ごとけん

>>image だと「像」という意味になるので、
>>imag に変えていただくというのはいかがでしょうか。
>>real も四文字で、対称性がよいし。
>
>数学の教科書だと Re(z) と Im(z) というのをよく見るので、z.re 
>と z.im のほうが通じやすいと思うんですけど、Numeric#im なん
>てのがあったんですね。でも現行の im は要らんような気がします。

現行のimの用途は上記で述べた通りです.

>im の意図はきっと self*Complex::I だと思うので、せめて、現
>行の im は i と改名した方が分かりやすいんじゃないかなぁ。

ですので. iでまさにあっているんですが, 一文字のメソッド名はどうかと思っ
て採用しませんでした. でも, 他に反対する人がいないなら, ごとけんさん案

  re
  im
  i

がよいのではと思います.

後気になるのが, インスタンス名@imageですがこれも変えたほうがよいかな??
これも もともとは, @re, @im だったんですが, 短すぎるので改名しました.

__
..............................石塚 圭樹@日本ラショナルソフトウェア...
----------------------------------->> e-mail: keiju / rational.com <<---