如何在Clojure中迭代嵌套数组哈希结构?

时间:2012-08-16 15:49:30

标签: clojure

我想在数据结构中存储多个配置条目(可以灵活扩展),如下所示:

(def config [{:host "test", :port 1},{:host "testtest", :port 2}])

稍后我想迭代并处理该数组中的每个哈希值。

有人可以指出如何在Clojure中做到这一点吗?

2 个答案:

答案 0 :(得分:4)

如果您只想要副作用,可以使用for(或doseq来循环存储在矢量中的每个地图。如果您事先知道它们,甚至可以使用destructuring来绑定地图的各个键:

(def config [{:host "test", :port 1},{:host "testtest", :port 2}])

(for [{h :host p :port} config]
  (format "host: %s ; port: %s" h p))

; => ("host: test ; port: 1" "host: testtest ; port: 2")

答案 1 :(得分:3)

一种方便的方法是使用地图

 (map #(print (:host %1)) config)

或者只是一般

 (map my-processing-func config)