Ralph
Ralph

Reputation: 32264

Clojure type hints syntax

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

Answers (1)

Michał Marczyk
Michał Marczyk

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

Related Questions