title: clojure way to update a map inside a vector
body: <p>What is the clojure way to update a map inside a vector e.g. if I have something like this, assuming each map has unique <code>:name</code></p>
  
  <pre><code>(def some-vec
    [{:name "foo"
      ....}
     {:name "bar"
      ....}
     {:name "baz"
      ....}])
  </code></pre>
  
  <p>I want to update the map in someway if it has <code>:name</code> equal to <code>foo</code>. Currently I'm using <code>map</code>, like this</p>
  
  <pre><code>(map (fn [{:keys [name] :as value}]
         (if-not (= name "foo")
           value
           (do-something .....))) some-vec)
  </code></pre>
  
  <p>But this will loop through the entire vector even though I only update one item.</p>