¿Cómo agrego un elemento a un mapa de matriz en Clojure?

¿Cómo puedo agregar un elemento a un mapa de matriz en Clojure? ¿Intenté usar assoc pero no se agregó? Básicamente, quiero establecer un valor predeterminado de 0 para los elementos faltantes en la matriz de mapas de entrada.

(defn create-entry [doc]
 (let [entry (assoc doc "id" (str (java.util.UUID/randomUUID)))]
  (if (empty? (get entry "foo")) (assoc entry "foo" 0))
  (if (empty? (get entry "bar")) (assoc entry "bar" 0))))

Actualización después de los comentarios de Carcigenicate:

(defn entry [doc]
(as-> (assoc doc "id" (str (java.util.UUID/randomUUID))) e
      (if (empty? (get e "foo")) (assoc e "foo" 0) e)
      (if (empty? (get e "bar")) (assoc e "bar" 0) e)))

(defn create-entry [doc]
  (prn (entry doc)))

Respuestas a la pregunta(2)

Su respuesta a la pregunta