Subject: Re: Windows PCL Lispbox now available
From: (Rob Warnock)
Date: Sat, 27 Aug 2005 21:59:17 -0500
Newsgroups: comp.lang.lisp
Message-ID: <>
Pascal Bourguignon  <> wrote:
| (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 Warnock			<>
627 26th Avenue			<URL:>
San Mateo, CA 94403		(650)572-2607