[plt-scheme] keywords (a backward-incompatible change)

From: Robby Findler (robby at cs.uchicago.edu)
Date: Sun Oct 2 21:44:52 EDT 2005

At Sun, 02 Oct 2005 19:23:21 -0500, Alex Shinn wrote:
> The term self-quoting seems a little confusing, as it suggests the
> idea of a quote being inserted.  This is not the case.  The difference
> can been seen in:
> 
>   (list 'a 'b 'c)  =>  (a b c)      ; quotes go away
>   (list :a :b :c)  =>  (:a :b :c)   ; colons remain

I'm not sure I should be jumping into this thread, but the above
confusion is due to the confusing Scheme printer. In the first example,
there is a quote missing on the right-hand side (the printer strips it
off) and the second example, I think that the same thing is happening,
it's just that ':a is the same as :a (which is probably where the term
"self-quoting" comes from).

DrScheme's constructor and quasiquote style printers in the REPL
provide two alternatives that, whenever possible, print values as they
could be typed in to the program. Ie, you'd see:

  `(a b c)   or   (list 'a 'b 'c)

for the first example above, depending on which printer you chose.

Robby


Posted on the users mailing list.