It means that your program code you write is also data which can be manipulated by a program. Take a simple Scheme expression like
(+ 3 (* 6 7))
You can regard it as a mathematical expression which when evaluated yields a value. But it is also a list containing three elements, namely +
, 3
and (* 6 7)
. By quoting the list,
'(+ 3 (* 6 7))
You tell scheme to regard it as the latter, namely just a list containing three elements. Thus, you can manipulate this list with a program and then evaluate it. The power it gives you is tremendous, and when you “get” the idea, there are some very cool tricks to be played.