CLOS 学習

Common Lisp のパッケージを細かく区切ると C++ プログラムを CLOS に変換するのがうまくいく気がしてきた。

ほとんどクラス単位でパッケージにすると、パッケージ単位で use, import-from, shadow, shadowing-import-from を使うことで名前を制御できる。代償として沢山パッケージができてしまう。パッケージ名を :com.gigamonkeys.email-db のようにキーワードにして文字列をピリオドで区切ることができるが、見た目だけで、 Java のように階層関係を示している訳ではない。

自分の使い方がおかしい可能性も高いが、今ひとつ洗練されていない印象。何かの言語に似ていると思ったら、 "Practical Common Lisp", p.268 の脚注に書いてあった。

The non-Lisp language with a package system most like Common Lisp's package is Perl.