Subject: Re: #;
From: rpw3@rpw3.org (Rob Warnock)
Date: Mon, 31 Dec 2007 03:01:49 -0600
Newsgroups: comp.lang.lisp
Message-ID: <PtKdnW2X75NgMuXanZ2dnUVZ_gKdnZ2d@speakeasy.net>
Kaz Kylheku  <kkylheku@gmail.com> wrote:
+---------------
| > I have seen many examples using #+nil for this
| 
| That and #+IGNORE will break if someone adds IGNORE or NIL to
| *FEATURES*.
| 
| What will not break is #+(or).  This actually has the meaning of
| ignoring the following expression no matter what.
+---------------

I actually prefer Erik Naggum's suggestion of #-(and) for that,
since the minus implies "turn it off" to me more than #+(or)
[which just feels "backwards"]. That also lets you change only
one character to turn it back on with #+(and), and again the
plus implies "on" to me [rather than using #-(or) for "on"].

But for some time now I've been using an even simpler pair,
namely, #+- to turn a form "off" [mnemonic: "from on to off"
or a "falling edge"] and #-+ to turn a form "on" [mnemonic:
"from off to on" or a "rising edge"], e.g.:

    > (list 1 2 #+- 3 4 #-+ 5 6)

    (1 2 4 5 6)
    > 

This will work provided no-one ever puts :+ or :- onto *features*,
which is highly unlikely. (IMHO.)


-Rob

-----
Rob Warnock			<rpw3@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607