成田です。

MAEDA Atusi wrote:

> KURODA Hisao <kuroda@msi.co.jp> writes:
> 
>> Narita Takaoki <takaoki@aisoft.co.jp> writes:
>> 
>> > 静的束縛をする言語というならほとんど理解できるのですが……
>> 
>> 「静的束縛」って、どういうものをおっしゃってます?
>> lexical binding のことでしょうか?
> 
> たぶん、なりたさんは「late binding の反対」の意味で使っていらっしゃる
> のでしょう(early bindingっていうのかな?)。

まさしくそれです。

> ところで、「再定義を許す」というのが、同じ関数(あるいは同じシグネチャ
> を持つメソッド)の定義が、1つのプログラム中に2回以上現れてもエラーとな
> らない、と言う意味だとすると、late bindingかどうかと、関数の再定義を許
> すかどうかは別の話だと思います。
        :
> * late bindingではないが、関数の再定義(二重定義)を許す言語の例
>    … これまで話題になった再定義とはちょっと違うかも知れませんが、
>    MLの関数名と実体の対応はコンパイル時に完全に決まります。同じ名前の
>    関数が2つ定義されると、『それ以後の呼び出しでは』新しい定義が参照さ
>    れます。すでに古い定義を参照してコンパイルされた部分には影響しません。
>    (Lisperには、「関数定義は代入ではなくて、新たな束縛が付け加わる。し
>    たがって、すでに作られたclosureには影響しない。」と言うと分かりやす
>    いかも。)

MLのことを忘れてました。このように方針を決めてしまって、古いのは古
いのだよとしてしまえばコストも気にしなくて良くなりますね。

# しかも型付だし。

--
        「十分間で決断し、短い理由を添えよ」
        A.I.Soft, Inc. CS・品質推進課 成田隆興