Common Lispパッケージは4つのファイルで構成されている:
これは“主要な”ファイルであり、基本的関数とパッケージについての情報を 含む。このファイルは比較的コンパクト—約700行である。
このファイルはより大きく、より複雑または通常ではない関数を含む。
cadr
関数のようなCommon Lispの基礎だけを使いたいパッケージがより
高度な関数のロードのオーバーヘッドを払わなくてよいように
切り離されている。
このファイルは、delete-if
やassoc*
のように列やリストに
作用する高度な関数の多くを含む。
このファイルは関数ではなくマクロに関するパッケージの機能を含む。 マクロは実行時ではなく呼び出される側がコンパイルされるときに 展開するので、マクロは一般的にバイトコンパイラ実行時 (または.emacsファイルのようにコンパイルされていないコード中で 使われるとき)のみ必要である。このパッケージのマクロの多くは、 コンパイルしない限りメモリを使わないようにcl-macs.elに 分離されている。
cl.elファイルはその他の3つのファイルの関数とマクロに
必要なすべてのautoload
コマンドを含む。
やらなければいけないことは、(require 'cl)
と書き、cl.elが
必要なときにその他のファイルを引っ張れるようにすることだけである。
別のファイルcl-compat.elがあり、それは新しい
パッケージにはもうない古いcl.elのいくつかのルーチンを
定義している。これはsetelt
やzip-lists
のような内部
ルーチン、defkeyword
のような非難された機能、そして古い
スタイルの多値機能のエミュレーションを含む。See 古いCLとの互換性.