我有地图序列
(def aaa '({:a "read"} {:a "open"}) )
我需要获得以下值序列
("read" "open")
我可以用什么方式在clojure中做到这一点?
答案 0 :(得分:4)
像@jmargolisvt提到的那样,这非常简单。如果您还没有通过braveclojure.com这样的工作,那么我强烈推荐它,只是为了让您对Clojure的基本函数式编程有所了解。
(def aaa '({:a "read"} {:a "open"}) )
(map :a aaa)
编辑:只是想扩展一点,以提供一个礼貌的RTFM。关键字可以是在地图上运行的函数。如果您的关键字不在列表中,则会返回nil
,如果您有
(def bbb '({:a "read"} {:a "open"} {:b "scribble") )
并且您希望仅获取:a
值并且不会得到nil
值,那么您首先需要filter
序列。
(map :a
(filter #(contains? % :a) bbb))