最近、Allegro Common Lisp の Enterprise 版が手に入り、最適化熱を再燃させています。その手始めとして、Computer Language Benchmarks Game の Lisp プログラムを高速化しようとしましたが、正直に言って、これらのプログラムは Lisp らしからぬ書きぶりで(いやむしろ Lisp らしいと言ったらいいのか)、高速化しようにもなかなか手が付けられない状態です。どういうことかと言うと、例えば fannkuch-refux には次のようなマクロがあります。 (defmacro setlambda(n) (declare (type fixnum n)) (let ((copy (gensym)) (perm (gensym))) `(lambda (,perm ,copy) (declare (optimize (speed 3) (s