From: Take_tk Date: 2003-08-25T20:21:01+09:00 Subject: [ruby-list:38234] Re: String << の動作につきまして たけ(tk)です [ruby-list:38212] Re: String << の動作につきまして にて matz@ruby-lang.org (Yukihiro Matsumoto) さん曰く: > は参照を入れる箱ね。でも、Rubyのような参照しかない言語で、箱 > モデルになじんでない人に対して説明する時にそのモデルが有効かっ > てのは疑問があって、ふなばさんはそれを指摘しているんだと思い > ます。 > > 有効な反論は …… > * 「変数=箱モデル」を理解していれば他の言語でも役に立つ > > のいずれかだと思いますが、実際のところどうかなあ。 ふむふむ。この説明で、たけ(tk)さんのスタンスの特殊性が分かってきました。 『Rubyの冒険』の最初の文字は「はじめに:Ruby:本書はRuby言語を使ったプロ グラミングの入門書だ」というものなのです。が、これには次の二通りの解釈が 可能。 A.《Ruby言語を使ったプログラミング》の入門書 B.Ruby言語を使った《プログラミングの入門書》 Aの想定読者は他の言語でのプログラミングについてはだいたい分かっているが、 Rubyに関しては初心者、というような人。 Bの想定読者は、プログラミングとやらを齧ってみたい、という程度の人。プロ グラミング自体に明確なイメージを持っていない人。他の言語の入門書を読んで みたが、いまいち理解しきれない、という程度の人。このような読者に、VBの 入門書で読んだ「変数」のイメージとかけ離れた比喩から始めるのは、混乱を招 くだけで理解を妨げる要因になりかねない。 どちらの立場をとるかで変数の説明の方法も変ってくる。 Aの立場であればRuby言語の変数の本質に一番近い比喩で語るのが望ましい。他 の言語についての知識がある人にRubyを理解してもらうためには、Rubyの変数 の特徴を強烈にアピールする方が、Rubyの変数の本質を理解する近道になる。 Bの立場であればRuby以外の言語でも通用するような、かつ、Rubyでも当たらず とも遠からずの比喩から始めるのが望ましい。 まあ、このように考えて、たけ(tk)はBのスタンスをとることにした、というわ けです。 Bの読者にとってどちらがベターなのかは、実際のところは分かりませんけどね。 ---- それともう一つの理由は、正確に理解するためには「変数にはオブジェクトのI Dが入っているだけだ。IDは普通はオブジェクトの本体の所在地を示す番地だ」 というようにつなげていくしかないだろう。 その前ぶれとしては、箱説のほうが説明しやすそうだ、という思惑もありました。 ---- もう一つ悩んだのは、「配列やハッシュというオブジェクトとその要素・値とな るオブジェクトとの関係」と「変数とオブジェクトとの関係」は本質的に異なる ものなのか? ということ。 名前説をとった場合に配列と変数が似た性質を持つことをどうやって説明しましょ うか? 配列も要素オブジェクトの名前だ(※)、となるのか? hensuu = "変数" hairetu = [] hairetu[0] = hensuu hairetu[0] << " << 配列" p hensuu p hairetu[0] hensuu = "変数" hairetu = [] hairetu[0] = hensuu hairetu[0] += " += 配列" p hensuu p hairetu[0] ※:[ruby-list:38212]酒匂さん:TEISU, hairetu[0], hensuu という名札 (hairetsu[0]は少し違いますが)は皆、同じオブジェクトに貼られているので す。 > 仕事の名前とか役の名前と考えればよいんじゃないですか。 > 課長とか社長とか「Rubyのメンテナ」とか。 その会社でしか通用しない役職名のようなもの、変数のあり方を説明するには良 さそうですね。ただし、シュールな面は残る。→[ruby-list:38233] Take_tk = KUMAGAI Hidetake たけ(tk)=熊谷秀武