Как извлечь значения из каждого из значений в карте карт? - PullRequest
8 голосов
/ 05 июля 2011

Я только начал изучать 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 ]

11 голосов
/ 05 июля 2011
(defn get-titles [] (map :title (vals distributions)))
5 голосов
/ 06 июля 2011

В качестве альтернативы: (for [[k v] distr] (:title v))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...