What is the difference between defn and defmacro? What is the difference between a function and a macro?
The Other answers cover this well in depth so I'll try to cover it as succinctly as I can. I would appreciate edits/comments on how to write it more succinctly while keeping it clear:
a function transforms values into other values.
(reduce + (map inc [1 2 3])) => 9
a macro transforms code into other code.
(-> x a b c) => (c (b (a x))))