其中clojure.core有一个apply函数,以多重数量风格编写(大概是为了效率)。
clojure.core
apply
但是我问是否有这样的实现:
(defmacro apply [f coll] (conj (seq coll) f))
不会更好。
我知道宏的效率低于函数,但它真的有这么大的区别吗?
或者,是否不可能将此宏编写为函数(我尝试过但失败了,但这并不能证明,因为我没有编写宏的经验)?
macros performance clojure apply
apply ×1
clojure ×1
macros ×1
performance ×1