なひです. 不勉強でしばらく参加できませんでした.^^; > From: Shin-ichiro Hara [mailto:sinara / blade.nagaokaut.ac.jp] > Sent: Saturday, April 17, 1999 5:37 PM > (1)変数の束縛 > > var = "obj" とするとき、変数はオブジェクト "obj" に「束縛 > された」といいます。逆にいえば、オブジェクト "obj" は変数 > var を束縛する。さらに foo = var とすると、foo も "obj" に > 束縛されます。どちらの = も Ruby では「代入」呼ばれます。 > (2つの = に区別があるかどうかの判断は保留。) > > これは広義の束縛であって、lisper にとってこの使い方は気持 > ちわるいです。lisper にとっては新しい変数を導入し値を代入 > することが束縛です。 似非LISPerのなひですが, 狭義の(LISPコンテキストにおける)「束縛」は, 「lambdaブロックが引数を束縛する」 という使い方をするのだと思っていました. つまりある変数とlambda抽象の間の関係(?)のことで, そこに「オブジェクト」の存在を意識したことがありませんでした. 自由変数はlambda抽象に束縛されない変数. 束縛変数は束縛された変数(アタリマエ ^^;). 束縛変数は別名に書き換えてもOK(なんて言う?). だから環境の導入が必要になる. # と,理解してますが...本当かどうかは...^^; ところで,なひはCLOSに触わったことがありません.^^; LISPがオブジェクト指向になったりすると, 変数とオブジェクトの間に,上記「狭義の束縛」を発展させた なんらかの関係を認められるようになるんでしょうか... で,最初になひが騒ぎを巻き起こした 「代入は束縛」ですが(このたった5文字が...^^;), これは上記のような意味ではなく, 変数をオブジェクトに「紐付けする」,を指しているつもりでした (紐付けスレッドをちゃんと追ってないので,間違っていたらすいません). これについてなひの用語選択が軽率だったことは間違いありません. LISPで「束縛」と言ったら,狭義の意味ですよねぇ.^^; 今みたら,昨晩書いた文章に「変数に対する束縛が起こる」なんてあります. やっぱりまだごっちゃにしてるみたい.「紐付け」に書き直そうかな... # 「参照」に関しては,まだコメントできるほど頭が整理できてません.