そしてlisp2とは
syntax-caseがすばらしいものなのならば、schemeはlispとして完全なものになる気がする。
いまのところよくわからないから、古典的マクロが安全にかけるlisp2に引かれている。
でもlisp2って何なのかよくわからなくなってきた。
関数と変数の名前空間を分けるというが、common lisp的な分け方をする必要があるのだろうか。
パッケージが定義できて、パッケージ変数が定義できればいいだけではないのか。
つまりfuncallとかfunctionとか、なんで必要なのかがわからなくなってきた。
まぁその場合でも名前空間は単一ではないからlisp2なのか。
funcallとかfunctionがないようなlisp2ってないのかな。clojureとかいうのはどうなんだろ。
perlは関数と変数(配列とハッシュ)で名前空間わかれていて、パッケージもあり、lisp2なんだろうが、
リファレンスを明示的に扱えば、まあある程度は統一的に扱える。
つまりパッケージ変数にもレキシカル変数にも、どちらにでも関数へのリファレンスを入れることができる。
common lispの名前空間の分け方が、なんかしっくりこない。
なんなんだろ。