title: How to Iterate over Map Keys and Values in Clojure?
body: <p>I have the following map which I want to iterate: </p>
  
  <pre><code>(def db {:classname "com.mysql.jdbc.Driver" 
           :subprotocol "mysql" 
           :subname "//100.100.100.100:3306/clo" 
           :username "usr" :password "pwd"})
  </code></pre>
  
  <p>I've tried the following, but rather than printing the key and value <strong>once</strong>, it repeatedly prints the key and values as various combinations:</p>
  
  <pre><code>(doseq [k (keys db) 
          v (vals db)] 
    (println (str k " " v)))
  </code></pre>
  
  <p>I came up with a solution, but Brian's (see below) are much more logical.</p>
  
  <pre><code>(let [k (keys db) v (vals db)] 
    (do (println (apply str (interpose " " (interleave k v))))))
  </code></pre>