Lisp Scheme Part31
■ このスレッドは過去ログ倉庫に格納されています
0340デフォルトの名無しさん
2010/10/26(火) 23:52:17真面目に答えますと、case-sensitiveなパッケージは処理系独自拡張なのはご存知ですよね?
ただ、ANSI Common Lispは、case-sensitiveなシンボル自体は扱えるんですよ。|symbol|みたいに。
なので、CLISPでは、独自に擬似的なcase-sensitive環境を実現するために、>>338でも書きましたが、
case-sensitiveなシンボルを使うことで大文字小文字の区別を付け、readerやprinterなどに細工して、
それっぽく処理してる訳です。cs-cl:symbol-nameとか、cs-cl:internとかも、その一環です。
で、そういった動作になるのは、(1)ではCLISPの独自拡張のcs-cl:symbol-nameやcs-cl:internが、
(2)ではANSIのcl:symbol-nameやcl:internが使われるからです。:userと:cs-userの両パッケージ内で、
clパッケージとcs-clパッケージのsymbol-nameやinternを、それぞれ試してみてください。
また、この辺りはreaderとパッケージの動作を理解していないと、混乱するかもしれません。
この説明で納得できないなら、まずCommon Lispのreaderとパッケージの仕組みを把握してから、
CLISPのコードを実際に読んでみてください。難しいコードではないので、すぐに理解できると思います。
CCLユーザで、本来Schemerな私の説明より、ずっと解り易いのではないでしょうか。
■ このスレッドは過去ログ倉庫に格納されています