tjb1982
tjb1982

Reputation: 2259

What does "#'symbol" notation mean in clojure?

I'm learning clojure on Heroku using this tutorial. I've come across the same thing in other tutorials, as well.

Anyway, using the jetty adapter in ring, you have something like this:

(defroutes routes 
  ...)

(defn start []
  (ring/run-jetty #'routes {:port 8080 :join? false}))

I don't understand what #'routes means. If I replace it with just routes it seems to work fine. What does the #'symbol notation mean? It's been very difficult to research.

Upvotes: 26

Views: 9842

Answers (1)

Jan
Jan

Reputation: 11726

It's a reader macro. #'foo expands to (var foo). See Is pound-quote (hash-quote, #') in Clojure running the resolve and symbol functions?, Difference between Symbols and Vars in Clojure and http://clojure.org/vars where you can find in-depth discussion.

Upvotes: 27

Related Questions