Clojure等效的Javascript' s

时间:2015-12-09 06:46:08

标签: javascript clojure apply

是否有核心Clojure功能可以执行以下操作?

(defn call [f & xs] (apply f xs))

在JS中,我认为它是Function.prototype.call,但我在Clojure中找到的最接近的是apply

我试图将一组函数应用于等长的操作数数组。

(map call [inc dec identity] [1 1 1])
;; ===> [2 0 1]

我会使用apply,但它不会作为map的参数工作,因为它需要一个参数列表,而不仅仅是参数。

它可以以一种微不足道的方式内联实现,但不能用多方式实现,而且感觉很麻烦。

(map #(%1 %2) [inc dec identity] [1 1 1])

也可以通过申请和一些重新安排来完成。

(map apply [inc dec identity] [[1] [1] [1]])

但这感觉更加混乱。

0 个答案:

没有答案