Try this:
(defn mystery-fn []
(list {:lat 40.4167754, :lng -3.7037902, :address "Madrid, Spain"} )
)
(println :println (mystery-fn))
(prn :prn (mystery-fn))
(def a (first (mystery-fn)))
(prn :a a)
(def b (:lat a))
(prn :b b)
with output:
:reloading (tst.clj.core)
:println ({:lat 40.4167754, :lng -3.7037902, :address Madrid, Spain})
:prn ({:lat 40.4167754, :lng -3.7037902, :address "Madrid, Spain"})
:a {:lat 40.4167754, :lng -3.7037902, :address "Madrid, Spain"}
:b 40.4167754
Notice the difference between println and prn. Using prn, you get strings displayed with double-quotes which can help a lot when there are embedded spaces.
Also, when you want to label a printed output, it is often easier to use a keyword as the label like (prn :xyz ...) instead of (println "xyz = " ...).
(first x)to get the first map. - Lee({:lat 40.4167754, :lng -3.7037902, :address "Madrid, Spain"}), with a preliminary'if you expect to read it. - Thumbnail