Currently if you happen upon a Ref in the REPL, you don't get much
helpful information:
user=> (ref #{:a 1})
#<Ref clojure.lang....@968fda>
Improving on this is not difficult:
(defmethod print-method clojure.lang.IRef [o w]
(.write w (format "#<%...@%x: %s>"
(.getSimpleName (class o))
(System/identityHashCode o)
(pr-str @o))))
Now Ref and all her cousins print their values:
user=> (agent 99)
#<ag...@458f41: 99>
The identity code is included so you can tell if it's the same object
or a different one, since the identity of reference objects matter.
user=> (let [a (atom 4)] (swap! a inc) (prn a) (swap! a + 10) (prn a))
#<a...@7ecd78: 5>
#<a...@7ecd78: 15>
This is also why the #<> format is still used, disallowing 'read' from
working on the string.
--Chouser
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---