juxt与地图相反吗? (在Clojure中)

时间:2015-03-16 11:13:06

标签: dictionary clojure higher-order-functions

在Clojure中,我们看到以下使用map的示例:

(map inc [1 2 3 4 5])
;;=> (2 3 4 5 6)

我们观察到map接受一个函数并将其应用于集合中的每个元素。

在Clojure中,我们看到以下使用juxt的示例:

((juxt inc dec) 2)
;=>[3 1]

我们观察到juxt采用数据结构并将每个函数应用于它。

我的问题是: juxt与地图相反吗? (因为你映射一个函数集合上的数据结构而不是相反的方式)

2 个答案:

答案 0 :(得分:2)

我认为你不能把juxt称为地图的反面。 Juxt将许多函数组合成一个函数,该函数生成将每个函数应用于其参数的结果序列。

答案 1 :(得分:0)

我猜juxt可以(应该是?)用map来表达     (defn juxt [& funs](fn [& args](map#(apply%args))funs))