juxt 是 map 的反义词吗? (在 Clojure 中)
Is juxt the opposite of map? (In Clojure)
在 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是map的反义词吗?
(因为你 map 函数集合上的数据结构而不是相反)
我认为你不能调用 juxt 的反义词。 Juxt 将多个函数组合成一个函数,该函数产生一系列将每个函数应用于其参数的结果。
我想 juxt
可以(应该是?)用 map
来表达
(defn juxt [& funs] (fn [& args] (map #(apply % args)) funs))
在 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是map的反义词吗? (因为你 map 函数集合上的数据结构而不是相反)
我认为你不能调用 juxt 的反义词。 Juxt 将多个函数组合成一个函数,该函数产生一系列将每个函数应用于其参数的结果。
我想 juxt
可以(应该是?)用 map
来表达
(defn juxt [& funs] (fn [& args] (map #(apply % args)) funs))