在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与地图相反吗? (因为你映射一个函数集合上的数据结构而不是相反的方式)
答案 0 :(得分:2)
我认为你不能把juxt称为地图的反面。 Juxt将许多函数组合成一个函数,该函数生成将每个函数应用于其参数的结果序列。
答案 1 :(得分:0)
我猜juxt
可以(应该是?)用map
来表达
(defn juxt [& funs](fn [& args](map#(apply%args))funs))