我想像这样返回一个哈希映射:
(fn [foo bar] {:foo foo :bar bar})
有可能不重复这些名字吗?类似于let
允许这样的事情:
(let [{:keys [foo bar]} args]
(...))
答案 0 :(得分:3)
宏:
(defmacro some-hash-thing [& vals]
(zipmap (map keyword vals) vals))
并在使用中:
(let [a 4, b 5]
(some-hash-thing b a))
;; => {:a 4, :b 5}
答案 1 :(得分:3)
(defmacro as-keymap [& names] `(conj {} ~@(map (juxt keyword symbol) names)))