Hi,
I haven't thought of that idea. But it does look ugly, doesn't it? ;)
Pascal
On 6 May 2012, at 21:07, Robert Smith wrote:
Hello,
You say #+nil is not reliable, which I agree with. However, what I'm in the habit of using is #+#:ignore, which AFAIK should be always reliable: #:ignore won't and can't be interned.
Even if #:ignore is in your features, it won't help.
CL-USER> (push '#:ignore *features*) (#:IGNORE ...) CL-USER> (+ 1 #+#:ignore 2 3) 4
I do use this in practice, and I also use it as a form of documentation on why I'm commenting something out. As a sort of contrived example:
(defun f () #+#:ignore-buggy (progn ...) ; buggy code
(progn ...)) ; working code
Though, this is certainly clunkier than a dedicated #; macro.
Cheers!
Robert Smith quad@symbo1ics.com
On Sun, May 6, 2012 at 1:57 PM, 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?
Best, Pascal
-- Pascal Costanza
pro mailing list pro@common-lisp.net http://lists.common-lisp.net/cgi-bin/mailman/listinfo/pro
-- Pascal Costanza