こんにちは、鄭です。

Yukihiro Matsumoto writes:
 > まつもと ゆきひろです
 > 
 > In message "[ruby-list:7488] Re: scope"
 >     on 98/04/15, Shin-ichiro HARA <sinara / blade.nagaokaut.ac.jp> writes:
 > 
 > |原です。
 .......
 > |、、、というのは、まつもとさんなんか、何のこっちゃ当たり前じゃない?
 > |と言うだろうけど、そうでもなかったりするのだ。
 > 
 > そうみたいですね.以前にも原さんがこの辺りについてしつこく説
 > 明していたのを見て,なんでそんな当り前のことを,と思っていた
 > 私です.しかし,現実は原さんの方が正しいらしい.
 > # 普通じゃなかったのか > 自分 ^^;;;

私も、ruby が動的束縛しかない言語である(と、最初にどこで読んだんだか、
おもいだせないんですが、これであってますよね?)と思っていたので、
まあ、当り前に思っていました。

リファレンスマニュアルをみると「はじめに」の節で 「変数に型が無い 
(動的型付け)」という文言はありますけど、変数とはなにかという説明は
みあたりません。(いまざっと見た限りでは)
リファレンスマニュアルの「Rubyの文法」「式」「変数と定数」の先頭あたりに
変数と定数とはなにか、、という説明を追加してはどうでしょう。

去年の UBAセミナーでの松本さんの OHP では、変数を

	変数・定数はオブジェクトに付ける名前 
        代入は同じオブジェクトに違う名前を付けること 

と説明していますが、これはこれで私にはちょっと気持わるい説明です。
定数は、「オブジェクトに付ける名前」という説明でしっくりきます。
しかし、Ruby(にかぎらないんですが)スクリプトの字面をみると変数(名)がでんと
そこに固定的に有ってあとから(ランタイムに)オブジェクトがやってくる
感じがするのです。
「オブジェクトに付ける名前」と説明されると、
     最初にオブジェクトが存在していて、ランタイムに名前が発生する。
  とか
     オブジェクトを作る時に、同時に名前をつける。
みたいな感じを受けるのです。でも、字面のうえでは先に名前が決まってる
じゃないかと思っちゃうわけです。

Ruby や Smalltalk(つかったことありませんが)みたいに全てがオブジェクトで
ある言語で、変数っていうのは、オブジェクトが消えてなくならないように
とめておくための、オブジェクトでは無い何かわけのわからないピンのような
存在みたいで、ちょっと気持わるく感じています。
(「全てがオブジェクトである」という表現に対する私の受取り方が変なのかも
  しれませんが。)

# ここらへんのわたしの居心地悪さを解消してくれる本かなにかないでしょうか?

-- 
                         ┌─鄭  明毅───────────────────┐
                         └──tei / harmony.co.jp──tei@mirage.linc.or.jp─┘