From: Tadayoshi Funaba Date: 2003-08-23T19:56:10+09:00 Subject: [ruby-list:38196] Re: String << の動作につきまして ふなばです。 ちょっと問題だと思うところから順に、 まず、たけさんは、変数は容器 (のようなもの) である、ということから出発 していますよね。これは、「常識」に依った説明です。ところが、 a = b = 'foo' などをうまく説明できません。「常識」では、ひとつのモノをふたつ以上の容 器に収めることは出来ません。ここで早くも破綻しました。 そこで、たけさんは、「オブジェクトの共有」の一言で済ませようとしている のかもしれませんが (今のところそう見えます)、それが、具体的にどういう ことなのか解りません。容器を入れ子に格納するのでしょうか? 最初は具体 的だった説明も、いきなり抽象的で、ボケたものなってしまっています。 変数がオブジェクトを所有するとか、変数がオブジェクトを共有するとか、実 際の ruby に存在しない概念を導入して、わかり易くなったんでしょうか。む しろ、難しいと思います。 ruby のすべてを理解することは難しいことだと思います。ただ、普通に ruby をつかうことは、それほど難しいことだとは思えません。ruby が提供しよう としているもの、ruby の本質は、そんなに難しくないんじゃないでしょうか。 一応、僕でもつかえてるっぽいですし。 変数っていうのは、いわば名前じゃないですか。 名前なり、なにか参照する術がなければ、存在しないのと同じ、という世界で すが、まずは、オブジェクトありき、なんじゃないですか。 まつもと、松本、matz、呼び方が違ったり、観察の主体が違っても、対象は、 ただひとりの人間じゃないですか。それって、そんなに難しいことなんでしょうか。 matz の破壊的なメソッドを実行するということは、まともとさんに対して、 それを行うのと同じことです。名前がモノを所有、共有するのでなくて、モノ に名前がついている、と考えればいいと思います。 僕は文才がないので、うまく説明できないかもしれませんが、本質に沿ったか たちで、難しい概念を導入することなく、説明可能と思います。