What does Clojure function #(:jerry @%) means

Viewed 1261

I'm very new in Clojure. I'm learning with help from Clojure Koans. I found an answer with code below:

(= ["Real Jerry" "Bizarro Jerry"]
       (do
         (dosync
          (ref-set the-world {})
          (alter the-world assoc :jerry "Real Jerry")
          (alter bizarro-world assoc :jerry "Bizarro Jerry")
          (vec (map #(:jerry @%) [the-world bizarro-world]))))))

from: https://github.com/viebel/clojure-koans/blob/master/src/koans/16_refs.clj#L42

It's pretty unfriendly for Google to search like "Clojure @%". So I get nothing from Internet.

How does it works for the function "#(:jerry @%)"?

And the code below is the answer from me, but it doesn't work.

(= ["Real Jerry" "Bizarro Jerry"]
       (do
         (dosync
          (ref-set the-world {})
          (alter the-world assoc :jerry "Real Jerry")
          (alter bizarro-world assoc :jerry "Bizarro Jerry")
          (vec (map (fn [x] (:jerry x)) [the-world bizarro-world]))
         )))
3 Answers
Related