我正在使用 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 是否提供了一种更有效的方法来专门研究长度?有什么我应该关注的领域/技术吗?