title: How can I update a vector item in Clojure?
body: <p>Given:</p>
  
  <pre><code>(def my-vec [{:id 0 :a "foo" :b "bar"} {:id 1 :a "baz" :b "spam"} 
               {:id 2 :a "qux" :b "fred"}])
  </code></pre>
  
  <p>How can I idiomatically update * the item in my-vec with <code>:id=1</code> to have values <code>:a="baz2"</code> and <code>:b="spam2"</code>?</p>
  
  <p><sub>*:  I recognize that I wouldn't actually be updating my-vec, but really returning a new vector that is identical to my-vec except for the replacement values.</sub></p>