Reputation: 32264
In the book "Programming Clojure" (Halloway, S., (2009). Programming Clojure. Raleigh, NC: Pragmatic Bookshelf.) he shows type hints using the syntax
(defn describe-class [#^Class c]
...)
while on the Clojure Website, the type hints are shown without the #
reader macro:
(defn len2 [^String x]
...)
Which is correct?
Upvotes: 9
Views: 1752
Reputation: 84331
Both are, but in different versions of Clojure: beginning with the 1.2 release, #^
syntax for reader metadata (in particular, type hints) is deprecated and ^
is to be used instead. Note that #^
still works in 1.2; also note that ^foo
was shorthand for (meta foo)
prior to 1.2, so you have to use the old notation if you use an older release.
Upvotes: 14