私はリアルタイム グラフィックスの実験に common-lisp を使用していますが、これまでのところ非常に優れています。速度とcffiとの簡単な互換性に対する私の要件は、「型付き」配列を使用していることを意味します。コードの中で本当に醜いと感じるのは、行列とベクトルの数学関数の一般的なバージョンです。CLOSは配列の長さに特化できないので、私は次のようなことをしています:
(defun v+ (vec-a vec-b)
(%v+ vec-a vec-b (length a) (length b)))
(defmethod %v+ (va vb (la (eql 3)) (lb (eql 3)))
***CODE HERE***)
これは機能しますが、正しくないと感じます。私はさまざまな CL 実装の拡張を見てきましたし、MOP の可能性についても耳にしました。
一部の CL 実装で機能が損なわれるのではないかと恐れたため、私はこれを避けてきましたが、最近ではCloser-to-Mop プロジェクトを見てきました。
主な質問: MOP は、長さに特化するためのより効率的な方法を提供しますか? 私が注目すべき領域/技術はありますか?