title: What is the idiomatic way to assoc several keys/values in a nested map in Clojure?
body: <p>Imagine you have a map like this:</p>
  
  <pre><code>(def person {
    :name {
      :first-name "John"
      :middle-name "Michael"
      :last-name "Smith" }})
  </code></pre>
  
  <p>What is the idiomatic way to change values associated with both :first-name and :last-name in one expression?</p>
  
  <p>(Clarification: Let's say you want to set :first-name to "Bob" and :last-name to "Doe". Let's also say that this map has some other values in it that we want to preserve, so constructing it from scratch is not an option)</p>