在 PAM {{-conj}} 实现中,使用了 {{-nth}},但在 V8 和 JavaScriptCore 上,通过调用向量或映射条目的目标索引可以更快地执行,大约快 10%。
例如,要获取第一个元素,不要使用 {{(-nth x 0)}}, 而是使用 {{(x 0)}}。有关说明,请参阅 CLJS-3111。
此外,在处理映射条目的分支中,不仅 {{(x 0)}} 更快,而且 {{(-key x)}} 也更快(尤其是在 JavaScriptCore 的 :none 上)。CLJS-3115 认为我们应该能够在这个代码部分假定映射条目。