ごとけんです

In message "[ruby-list:13864] Re: What is Object in Ruby? (Re: Ruby and LISP)"
    on 99/04/19, Shin-ichiro Hara <sinara / blade.nagaokaut.ac.jp> writes:
>原です。
>
>少しずつ行きます。Lisp における束縛の件ですが、

御意。

>「束縛される(自動詞)」のは、lambda 式の束縛変数のことですね。
>一方、lambda 式がパラメータ(オブジェクト)を伴って評価される
>とき、束縛変数はパラメータに「束縛される(他動詞受身)」わけ。

なるほど。僕が混乱しそうになるのは、 lambda 計算では他動
詞受身な束縛は beta 簡約と呼ばれるからなのかなぁ。 beta 
簡約で使われる代入は出現の置換で定義されるけど、Lisp の 
setq は項に対する操作ではなく、環境を操作する副作用が目
的で、確かにこれも束縛と呼びますね。了解。

>今回の Ruby における代入で定義される束縛は、後者の意味とし
>ているわけです。

むー、おっしゃることはわかるのだけどここが気持ち悪い。束
縛は代入を説明する言葉であるのに代入を使って定義されてい
るのがちょっと自己参照風味…。紐でもいいけどモデルを先に
作って、そこで束縛を定義し、そのあと代入の意味を束縛で確
定させる必要があると思うのです。あくまで束縛が代入を説明
する言葉であればですが。いずれにせよ実行モデルを構成しな
いと静的な構文上の問題にとどまりそうな気もします。そうい
う観点では環境とその文脈での評価(すなわちマニュアルでい
うところの参照)を先に定義した方が良いでしょう。

でも、原さんはそういうことがやりたいわけでもないみたいだ
しなぁ。ただ、原さんも認めてらっしゃるように参照関係とい
う言葉は多分にデリケイトですので、日常語以上の意味を持た
せるならなんらかの数学的アプローチが必要だとは思います。

-- gotoken