我正在尝试在Clojure中生成嵌套映射。 问题是。
也许有人给我一些指导或接近如何做到这一点。
P.S
所以我创建了我的函数的草稿(它不起作用)。
(defn finder [sequence function]
(for [x [sequence]
:let [ pair {:x (function x)}
mappa {} (assoc-in mappa pair)]]
mappa))
答案 0 :(得分:6)
这是使用juxt
(defn finder [sequence function]
(into {} (map (juxt keyword function) sequence)))
答案 1 :(得分:3)
您可以使用map
构建键值对,使用into
构建结果的hashmap:
(defn finder [sequence function]
(into {} (map (fn [k] [(keyword k) (function k)]) sequence)))
答案 2 :(得分:1)
您可以使用keyword
和into
等功能:
(defn finder [sequence function]
(->> sequence
(map #(vector (keyword %) (function %)))
(into {})))
答案 3 :(得分:1)
你可以在两个函数应用程序序列上进行zipmap,因为关键字也只是一个函数。
(defn finder [sequence function] (apply zipmap (map #(map % sequence) [keyword function])))