如何从地图中的每个值中提取值?

时间:2011-07-05 07:58:59

标签: clojure

如果我定义了以下地图,我刚开始学习Clojure:

(def distributions {:normal {:title "Normal" :mean 0 :sd 1}
                    :beta   {:title "Beta" :a 1 :b 3}
                    :gamma  {:title "Gamma" :rate 1/2 :shape 1}})

我如何写(defn get-titles [] ...)一个会返回的函数 ("Normal", "Beta", "Gamma")

2 个答案:

答案 0 :(得分:11)

(defn get-titles [] (map :title (vals distributions)))

答案 1 :(得分:5)

或者:(for [[k v] distr] (:title v))