Как перебирать ключи и значения карты в Clojure?

У меня есть следующая карта, которую я хочу iterate:

(def db {:classname "com.mysql.jdbc.Driver" 
         :subprotocol "mysql" 
         :subname "//100.100.100.100:3306/clo" 
         :username "usr" :password "pwd"})

Я пробовал следующее, но вместо того, чтобы печатать ключ и значение один раз , он неоднократно печатал ключ и значения в виде различных комбинаций:

(doseq [k (keys db) 
        v (vals db)] 
  (println (str k " " v)))

Я придумал решение, но Брайан (см. Ниже) гораздо более логичен.

(let [k (keys db) v (vals db)] 
  (do (println (apply str (interpose " " (interleave k v))))))
60
задан David Tonhofer 1 September 2019 в 12:15
поделиться