Clojure 函数调用性能

Clojure function call performance

如果 Clojure 函数存储为 vars,这是否意味着与例如Java?

中的静态方法

如果是这样,是否有任何方法可以在 Clojure 中定义一个函数,以便在调用它时不会降低性能? (或者如果不是,如何避免性能损失?)

是的,需要取消引用 var 才能检索关联的函数,因此与直接静态方法调用相比会有额外的开销(取消引用、强制转换、调用)。

有一个 open enhancement ticket 建议对 Clojure 本身进行更改以提高调用性能,并在评论中进一步提出解决方法建议。