I'm trying to learn scheme by myself. Could anyone tell me why '(quote quote)
will output 'quote
, and '(quote 'quote)
will output ''quote
?
Thank you very much!
I'm trying to learn scheme by myself. Could anyone tell me why '(quote quote)
will output 'quote
, and '(quote 'quote)
will output ''quote
?
Thank you very much!
This expression:
... after expanding
'<something>
to(quote <something>)
is equivalent to(quote (quote quote))
, notice that the symbolquote
is being quoted two times, and this expression is evaluated and printed as''quote
.On the other hand, this expression:
... is equivalent to
(quote (quote (quote quote)))
, notice that the symbolquote
is being quoted three times, and this expression is evaluated and printed as'''quote
.Take a look at (free, online) How To Design Programs, intermezzo 2. It explains quote in terms of list and cons. If anything in that explanation doesn't make sense, just back up a bit in the textbook.