05/02/12 13:47:20 .net
>>361
> 別に有利じゃないよ。lexical scope の言語で dynamic binding を使いたい
> ならfluid-let みたいなマクロを用意しとけばいいだけだし。
う~んと、相互に実現可能ってのはいいとして、どうして dynamic binding を使いたくなるのかって話。
代表的なのは、ローカル変数との絡みかな。各種 coding-system とか、 fill-column とか。
こういう変数を使う関数は、基本的にバッファごとに決まった値しか使わない。
でも、たまには違う値を使ってほしいこともある。
そんな関数は、 ELisp だと、単に変数を読みに行くだけでいい。
一時的に違う値を使うときは、束縛しとけばいいからね。
こういうやりかたは、 dynamic binding じゃないとできないでしょ。
> 現在では byte-opt.el にもあるよ
> うにすでに足枷でしかないんだけど
「足枷」なのは、 byte-opt.el の目的、最適化に対してでしょ。
基本的に、静的なものは効率と安全性を、動的なものは柔軟性を提供する。
どっちがいいかなんて用途次第。
特に Emacs は、効率よりも柔軟性を重視した環境だよね。
関数でできることはマクロにしないとか、 defsubst の多用も非推奨とか。
だから ELisp には、 dynamic binding がふさわしいと思う。