Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 获取对象数组中的所有属性_Clojure - Fatal编程技术网

Clojure 获取对象数组中的所有属性

Clojure 获取对象数组中的所有属性,clojure,Clojure,我有一个clojure对象数组;类似于: (def data { :genre "fantasy" :books [ { :id 1 :name "Lord of the rings" } { :id 2 :name "Game of thrones" } { :id 3 :name "Harry potter" }] }) 我想弄到所有的书的id。。类似于[1 2 3] 我试过几件事: (seq(数据:book:id))

我有一个clojure对象数组;类似于:

(def data {
    :genre "fantasy"
    :books [
        { :id 1 :name "Lord of the rings" }
        { :id 2 :name "Game of thrones" }
        { :id 3 :name "Harry potter" }]
    })
我想弄到所有的书的id。。类似于
[1 2 3]

我试过几件事:

  • (seq(数据:book:id))
  • (数据:书籍):id)
    ;如预期的那样,会导致错误
  • 但我不知道怎么拿到身份证。我是否必须使用doseq或其他迭代器函数来获取ID

    谢谢

    嗨,请问
    是什么意思?@rocusthorde
    (clojure.walk/macroexpand-all'(>>数据:图书(地图:id));=>(地图:id(:图书数据))
    (->> data :books (map :id))