Pascal Bourguignon <spam@mouse-potato.com> wrote:
+---------------
| rpw3@rpw3.org (Rob Warnock) writes:
| > May I strongly recommend that everyone always use #-(AND) instead of
| > #+(OR), and conversely use #+(AND) instead of #-(OR)? Yes, AND is
| > one character longer to type than OR, but with the AND flavor the sense
| > of the +/- "goes the right way": plus = on/enable, minus = off/disable.
| > Much less likely to cause mistakes.
|
| #+(or) comes from #+NIL
+---------------
Consider what will happen if NIL is on the *FEATURES* list, eh?
Those two forms will be different in that case.
+---------------
| Note that it would be useless to write #-(or) or #+(and).
+---------------
Why "useless"?!? Both signal the inclusion of the following form,
which you might have disabled earlier while testing some alternative.
If you use #+(and) for the one(s) that are currently enabled and
#-(and) for the one(s) that are currently disabled, then you can
turn a form "on" or "off" simply by changing a "+" to "-" or
vice-versa, e.g.:
(defun foo ()
;;XXX Only enable one of the following at a time:
#-(and) (bar baz 42)
#+(and) (gorp baz 42) ; <== this one is enabled
#-(and) (quux (1+ baz) 53)
)
+---------------
| We're taking (or) for false and (and) for true.
| #-(and) is like (not true)
| #+(or) is like false
| which is clearer?
+---------------
You misunderstand me. I'm suggesting to NEVER use #+(or) or #-(or)
because their meanings are "backwards" from the + and - signs they
contain [e.g., turning something "off" with a "+" is confusing].
Rather, I am suggesting to always use one of these:
#+(and) "+" == "on" == "true" == "include the following s-expr"
#-(and) "-" == "off" == "false" == "ignore the following s-expr"
-Rob
-----
Rob Warnock <rpw3@rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607