バイトコンパイルされたLispプログラムの実行速度を向上させる方法を紹介します。
memq、member、assq、または assoc
を使用すると、明示的な反復処理よりもさらに高速になります。これらのプリミティブな検索関数のいずれかを利用できるよう、データ構造を再構成する価値はあるでしょう。
byte-compileプロパティを調べてください。このプロパティがnil以外であれば、その関数は特別な処理が行われています。
例えば、以下の入力では、aref が特別にコンパイルされることがわかります(配列を操作する関数を参照):
(get 'aref 'byte-compile)
⇒ byte-compile-two-args
なお、この場合(および他にも多くのケース)では、まずbyte-compileプロパティを定義するbytecompライブラリを読み込む必要があります。