In the essay Beating the Averages (http://www.paulgraham.com/avg.html) Paul Graham asserts that LISP is the most powerful programming language because of macros. Other languages have metaprogramming, but in Clojure, as in other Lisps, metaprogramming is done with the same syntax and forms that is used for writing functions.
Is metaprogramming that important? And if it is, how do you do it and where can you use it. Come find out.