After struggling to write a quine in ruby, writing one in clojure turned out to be a joy. Lambdas + code as data are an awesome combination! We’ll create a lambda which prints its argument wrapped in lambda syntax, then pass in a quoted version of the same function:

(#(println (str "(#" % "\n '" % ")"))
 '(println (str "(#" % "\n '" % ")")))