##大域変数の扱いということならば、defvarをつかうというのは周知のことかなあとは思いますが、処理となるとどうなんでしょうね。定石になる程良くやることでもない気もちょっとします…
#自分だったら、一回しか読まないファイルを別ファイルにするとか、(eval-once-only (:load-toplevel) ...)とか適当なマクロを書くとか、するかもしれないと思いました
#なるほど、ありがとうございます。
#独自の名前空間をつくってそこにユニークなキーを登録するというのも、手かなともおもいました。
#何度もロードすることに起因する問題ということならば、視点を変えてみると他に回避策がなにかあるような気もしますね
#hunchentootで*dispatch-table*にhandlerをpushするのですが、コードをloadするたびにpushされるという...
#開発中に一旦処理系を全部落してロードしなおして動作確認する、というのは良くある気がします
#なるほど
#viで開発してて全部ロードしなおすから、とかでしょうか
#です。書いてloadしてってかんじです。
#SLIMEだと関数ごとに再定義できるので、そういう問題はおこりませんね。
#(eval-when (:execute :compile-toplevel) (push ...))も考えましたが、いまいちですよねー
#私は hunchentoot の場合、次のようにしてました。
#(defvar *dispatch*
(hunchentoot:create-prefix-dispatcher *url-prefix* 'dispatch))
(pushnew *dispatch* hunchentoot:*dispatch-table*)
#無駄な defvar が嫌な感じですが。。。