elisp では,ローカル変数のスコープは無限のスコープであるということにさっき気が付きました.
っていうか。 これぐらい古典的なLispはダイナミックスコープが普通 なんでないでしょうかねぇ?
私は最近のLispやらSchemeやらは使った事無いので、 レキシカルスコープだと逆に混乱してしまうのですが。
CommonLispはレキシカルが標準ですね(xyzzy lispもそうです)。できればダイナミックスコープであることに依存したコーディングは行っていただきたくないというのが、xyzzyへの移植者としての希望です。対応するのは難しくないような気がしますが、いろいろ混乱してしまいそうなので…。
他で使っている言語ではレキシカルスコープであることを意識して書くことが多いので,標準がダイナミックスコープであるということに気付きにくかったんですね.
ちなみに「map-y-or-n-p で,問い合わせ対象のオブジェクト以外にローカルなデータを渡すことが出来ないか」と思ったのが,気付いたきっかけです.
そうするほうが明らかに分かりやすい,という場合を除いては,ダイナミックスコープ前提で書くことは無いと思います.ただでさえ読みづらいコードが,ますます読みづらくなってしまうでしょうし.(^_^;
っていうか。
これぐらい古典的なLispはダイナミックスコープが普通
なんでないでしょうかねぇ?
私は最近のLispやらSchemeやらは使った事無いので、
レキシカルスコープだと逆に混乱してしまうのですが。
CommonLispはレキシカルが標準ですね(xyzzy lispもそうです)。できればダイナミックスコープであることに依存したコーディングは行っていただきたくないというのが、xyzzyへの移植者としての希望です。対応するのは難しくないような気がしますが、いろいろ混乱してしまいそうなので…。
他で使っている言語ではレキシカルスコープであることを意識して書くことが多いので,標準がダイナミックスコープであるということに気付きにくかったんですね.
ちなみに「map-y-or-n-p で,問い合わせ対象のオブジェクト以外にローカルなデータを渡すことが出来ないか」と思ったのが,気付いたきっかけです.
そうするほうが明らかに分かりやすい,という場合を除いては,ダイナミックスコープ前提で書くことは無いと思います.ただでさえ読みづらいコードが,ますます読みづらくなってしまうでしょうし.(^_^;