There is a subtle difference between the two. The single quote is resolved during source code translation, when the quoted cell is wrapped into a protecting envelope. The function quote
does the same but during evaluation. For most purposes they behave in the same way.
So the function quote
is more like the original Lisp quote
. The '
is an optimization performed during code translation. If you want to know more about code translation and evaluation, compare the functions read-expr
and eval-string
.