#順次変換していくためにはしかたないんじゃないですかねえ。
#プログラムの意味に影響を与える情報がコメントにあると困る例として、ひとつのファイルからいくつか関数をコピーして別のファイルにペーストしたら意味が変わっちゃうといやでしょ、というのを挙げようと思ったんだけど、考えてみたらSchemeだってファイル冒頭でimportしてるのが違うと関数単位のコピペでは意味が変わる可能性があるんだよなあ。
#とすると困るのは「ソースを読んで何か処理してソースを吐く」という系統のプログラム。普通にreadで読むとコメントは見えないから。ただ、そういうものが無くても不自由に感じないという人はたくさんいるのであまり強い意見にはならないかもしれない。
#そういえば、マクロによって挿入されるコードはどっちの意味になるのだろう。Schemeではhygienic macroによってその意味ははっきりしてる (e.g. マクロ定義時のletの意味を使うか、マクロ使用時のletの意味を使うか、マクロ作成者が制御できる)。CLの場合は意味はシンボルにくっついててシンボルはパッケージで分かれてるから、パッケージを明示することで制御できる。
#subr.el の dolist とか lexical-binding の値みて挿入するコードを変えているみたいですが、not reliable って…
#;; This is not a reliable test, but it does not matter because both
;; semantics are acceptable, tho one is slightly faster with dynamic
;; scoping and the other is slightly faster (and has cleaner semantics)
;; with lexical scoping.
(if lexical-binding