Thanks. Yes, I know about ^String being ^{:tag String} because it is mentioned all over the place. ^:dynamic is not. Thanks for the links, I haven't seen them before, and they do clear this issue up.
On Wed, Jan 9, 2013 at 10:03 AM, Andy Fingerhut <andy.finger...@gmail.com>wrote: > > On Jan 9, 2013, at 12:37 AM, wujek.sru...@gmail.com wrote: > > > Hi. I am currently learning clojure, which is a nice experience, but you > all know that. > > I have question about certain metadata definitions, which I couldn't > find a straight answer to on the net, and in none of the books I'm reading: > > 1. is ^:dynamic the same as ^{:dynamic true}, just a shortcut? > > Yes. > > > 2. is (def ^:dynamic ^:blah x) the same as (def ^{:dynamic true :blah > true} x)? > > Yes. > > > My tests show that the answer to the first 2 questions is yes, but I > can't seem to find anything that would back that up. > > I don't know where else this might be documented, other than the Clojure > source code, but one place is on the Clojure cheatsheet, in the section > called Metadata, subsection "Abbrevs" for "Abbreviations": > > http://clojure.org/cheatsheet > http://jafingerhut.github.com > > There you will also see that ^String is an abbreviation for ^{:tag > String}, and in general ^Type for ^{:tag Type} > > > 3. why so many ways to do the same? > > Clojure developers thought it would be nice to have shorter ways to write > metadata expressions that simply set a key's value to true, or annotated > the type, since those are quite common cases. > > I am not sure about the answers to the questions below off-hand. > Hopefully someone else can address them. > > Andy > > > > 4. what does ^:static do? I read on SO that it is not used any more, but > the source code in clojure.core still has these, and various tutorials use > them as well. > > 5. since when does one need to use ^:dynamic on vars to be able to use > (binding [...]) to rebind them thread-locally? Clojure in Action has a nice > example of a simple mocking framework that uses this feature but without > dynamic, but it is about clj 1.2 I think. 1.3 seems to require it though. > > > > Regards, > > wujek > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en