【发布时间】:2017-12-13 23:19:05
【问题描述】:
我已经定义了这样的人
(def persons
'({:id 1 :name "olle"}
{:id 2 :name "anna"}
{:id 3 :name "isak"}
{:id 4 :name "beatrice"}))
我想在这里映射类似这个命令的人的元素
(map :id persons)
(1 2 3 4)
但是,术语 :id 将像 [:id] 一样放在括号内。如何取消括号,以便
(map [:id] persons)
表现与
相同(map :id persons)
此外,如果数字以 :id 作为标题每列显示一个,那就太好了。
【问题讨论】:
-
不能只取向量的第一个元素得到
:id吗? -
嗯,我想是的,但我想这样做,这只是一个玩具问题。
-
我需要在方括号前添加 at 符号之类的东西。
-
没有办法让这两个表达式相等。您需要先处理该向量,然后再将其提供给
map。如果向量中有超过 1 个键怎么办?你期望结果是什么?并展示您已经尝试过的内容,并具体描述您遇到的问题。目前范围很广。 -
像
(map (first [:id]) persons),它使用first“处理”向量。您不能只将密钥向量提供给map并尝试像您尝试的那样使用它。
标签: dictionary clojure