ごとけんです

In message "[ruby-list:19328] Re: オブジェクトの代入について"
    on 99/12/09, Yukihiro Matsumoto <matz / netlab.co.jp> writes:

>では、なぜ文字列は値の容器であり、数は値そのものであるかとい
>うことですが、その理由は「数を値の容器とするオブジェクト指向
>言語のモデルが無い」という点でしょう。独自性を発揮する場合に
>は設計者に思い入れが必要だと考えているのですが、数に関してそ
>れほど思い入れが無かったので。
>
>一方、文字列は値とするものも、しないものもありますよね。で、
>Rubyは容器とする方を選んだと。これは配列との類似性を考えたの
>もあります。

おかげで根拠が分かりました。どうもです。

ちょっと余計なことを考えてみるに、他の言語にモデルを求めなく
ても整数はビットを格納する配列と考えることは計算機的には十分
に自然だったのではないかしら。実際Integer#[]なんてのがあるし。
むろん演算子の意味の違いってのがありますが、それを言うんなら
どっちみち自然な String#- はないので、文字列が容器としても配
列とはそんなに密接なアナロジーはないような気がします。

あと、配列や文字列では連結は * で、繰り返しは ** の方が非対
称性を反映してて自然だったと思います。* と ** が想像させる乗
法と巾はどちらも一般には非可換な演算なので相性ばっちりです。
たとえば繰り返しは "a"**100 と書くことになるので、ときどきあ
る "a"*100 は出来て 100*"a" ができないのは何故かなんて疑問も
まず起こらないでしょう。ただ猛烈にいまさらですね ^^;;

-- gotoken