【发布时间】:2020-06-04 00:51:37
【问题描述】:
我是 Clojure 的新手,正在学习 Clojure 中各种数据结构的属性。在这里,我有一个向量列表如下:
(["1" "Christiano Ronaldo" "Portugal" "35"]
["2" "Lionel Messi" "Argentina" "32"]
["3" "Zinedine Zidane" "France" "47"])
其中每个向量的第一个元素是 id。如何根据 id 从列表中过滤掉单个向量?例如,id = 1 应该返回
["1" "Christiano Ronaldo" "Portugal" "35"]
我尝试在嵌套地图上做同样的事情:
(def footballers
[
{:id 1 :name "Christiano Ronaldo" :country "Portugal" :age 35}
{:id 2 :name "Lionel Messi" :country "Argentina" :age 32}
{:id 3 :name "Zinedine Zidane" :country "France" :age 47}
]
)
并成功使用filter 函数
(filter #(= (:id %) 1) footballers)
结果:
({:id 1, :name "Christiano Ronaldo", :country "Portugal", :age 35})
如何使用filter 函数在向量列表中执行相同操作?
【问题讨论】:
-
把你的元组变成一张地图我认为是个好主意 - 给事物命名是非常强大的,你甚至可以回答你的问题。
标签: list vector filter clojure