In article AE74261C-E7E8-4A56-B708-B5B135A3FB29@p-cos.net, Pascal Costanza pc@p-cos.net wrote:
Hi,
I'm thinking about writing up a CDR on #;-style comments. Currently, if you want to comment out a form from CL code, there is no standard way of doing this. Many people use something like #+nil, or similar tricks, but this is not 100% reliable. R6RS Scheme introduced #; as a solution, and this seems to become somewhat popular in CL as well.
Here is a suggested wording.
------------- snip -----------------
#; is used to comment out single expressions; the syntax is /#; expression/. This textual notation is treated as whitespace; that is, it is as if the ``#; expression'' did not appear and only a space appeared in its place.
#; operates by skipping over the form. Skipping over the form is accomplished by binding *read-suppress* to true and then calling read.
------------- snip -----------------
The text is based on 2.4.8.17 of the HyperSpec. Yes, this would be a fairly short CDR document.
Any comments or ideas about this?
I don't see the need for it. #+nil will work just fine de facto. And for the paranoid, there's the trick that Robert Smith mentioned (#+#:foo).
The only thing that could make it interesting because it'd add something to the table, is to allow e.g. #2; to comment out the next two forms. It sounds a bit insane, though.
T
PS.
According to Figure 2-19 in CLHS 2.4.8, #, is not explicitly reserved for the user (most likely as #, was something akin to LOAD-TIME-VALUE in CLtL1.) I just wanted to point that out in case you do write a CDR where you might want to mention it.
Best, Pascal
-- Pascal Costanza