[#34647] fork 不可能な環境での test_argv0_noarg — wanabe <s.wanabe@...>

ワナベと申します。

13 messages 2008/05/11
[#34667] Re: fork 不可能な環境での test_argv0_noarg — Yukihiro Matsumoto <matz@...> 2008/05/13

まつもと ゆきひろです

[#34742] Ruby 1.8.7-preview3 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.7-preview3 をリリースしました。

14 messages 2008/05/18
[#34744] Re: [ruby-list:44957] Ruby 1.8.7-preview3 has been released — Takahiro Kambe <taca@...> 2008/05/19

お疲れ様です。

[#34800] Windows2000上でtrunkがビルドできない — KIMURA Koichi <kimura.koichi@...>

木村です。

18 messages 2008/05/22
[#34801] Re: Windows2000上でtrunkがビルドできない — "U.Nakamura" <usa@...> 2008/05/22

こんにちは、なかむら(う)です。

[#34824] Re: Windows2000上でtrunkがビルドできない — KIMURA Koichi <kimura.koichi@...> 2008/05/23

木村です。

[#34850] Re: Windows2000上でtrunkがビルドできない — KIMURA Koichi <kimura.koichi@...> 2008/05/26

木村です。

[#34854] Re: Windows2000上でtrunkがビルドできない — "U.Nakamura" <usa@...> 2008/05/26

こんにちは、なかむら(う)です。

[#34889] Ruby 1.8.7-preview4 test-all failed in OpenSSL::TestSSL — Nobuhiro IMAI <nov@...>

いまいです。

10 messages 2008/05/29

[ruby-dev:34628] Re: ComplexFloat

From: Shin-ichiro HARA <sinara@...>
Date: 2008-05-10 00:30:41 UTC
List: ruby-dev #34628
原です。

> こんばんは sheepman です。

> $ ruby-1.9 -ve 'p 1/(1+Complex::I)'
> ruby 1.9.0 (2008-04-24 revision 15721) [i686-linux]
> Complex(0, -1)

> 選択肢としては、
>
> 1. 実部と虚部が整数の複素数の除算は、実部と虚部を Rational に変換してから行う。
> 2. Complex を捨てて ComplexFloat のみ。
> 3. Scheme の exact complex に相当する ComplexRational を導入する。
> 4. complex が常に mathn を require する。
>
> があろうかと思います。

石塚さんが [ruby-dev:34603] で、これはバグだと言ってるので、
ナニなんですが、私の説は、

  5. Complex はこのままでOK。

です。

この『Complex このままでモーマンタイ理論』は以下の通り。

まず、Ruby に「複素数」というクラスがあるということ自体、不思
議だ。というのは、そもそも Ruby には「実数」というクラスが無
いからだ。

「実数」が無いぐらいだから「複素数」も有るはずが無い。

逆に言えば、整数をラップして / を quo にするような、Complex
を作るなら、整数をラップして / を quo にするような、Real をな
ぜ作らないのか、ということになる。

ところで、Ruby で、そもそも組み込みで「実数」を表現するインス
タンスを持ち得るクラスがあれば良かったのかというとそうではな
い。

というのは、「実数」というのは、無限精度を持つ数値なので、
Float さえ演算の挙動を考えれば「実数」と呼ぶべきでないという
説もある。

更に、もともと「実数」は計算機では表現できない。連続体である
実数の集合としての濃度は計算機で表現できる数の集合の濃度より
大きい。

もし「実数」を表現すると称するクラスを持つならば、それは誇大
広告だろう。

そして、Ruby は Integer、Float、Rational を持つが、「実数」を
表現するクラスを持っていない。そこに、自分の出来ることはこれ
だけだよ、という率直さ、謙虚さが表れているし、論理的である。

さて、以上の見地からして Ruby に Complex という、インスタンス
を持ち得るクラスを組み込みで持つのはどう解釈すればいいか。

突然 Complex が現れても、さっき述べた理由で「複素数」であるは
ずがないので、何かの洒落かアイロニーか、あるいは「複素数」を
思わせる何かであるに違いない。そして、定義を見て、確かに複素
数的な四則演算を持つオブジェクトを生成する仕組みだと分かる。

すなわち、関数 Complex() は「複素数」を返すというより、数値の
ペアを作りそれなりの四則演算機能を持たせる Complexification
(複素化=複素っぽくすること)の略である。クラス Complex は
Complexification の受け皿なのである。

そして、多くのユーザーは、Float 成分の Complex を使うだろうし、
そうでないユーザーは、用途に合わせて工夫して Complex を使うだ
ろう。

よってこののままでOK。

... という理論:-)です。


In This Thread