Subject: Re: Trivial feature expressions (was Re: Legal ANSI comment form?)
From: Erik Naggum <>
Date: 24 Aug 2002 04:24:58 +0000
Newsgroups: comp.lang.lisp
Message-ID: <>

* Erik Naggum
| Once internalized, this becomes an idiom that is not at all obscure.

* Frode Vatvedt Fjeld
| Isn't this statement is true by definition?

  No.  You can internalize something that still remains obscure, not only to
  others, but to yourself.  That is, some things never progress beyond passive
  vocabulary.  Some image that you understand when you meet it, but it takes
  effort to /remember/ how works, is not used.  #-(and) immediately makes so
  much sense that it becomes part of your active vocabulary.  I think of this
  the same way I think of string theory (not the character strings :).  It is
  very hard for me to read and follow, and my brain just drops it after a few
  months so I no longer even remember that I grasped something when I pick up
  a new paper.  There is no lack of understanding on my part when I immerse
  myself in it for the umpteenth time, but it runs counter to my intuition in
  a weird way that makes me always stand outside and look in.  I have not yet
  been able to /enter/ the world of string theory in a way that stays with me
  when I put down another excellent article or book on it.

| Anything one takes the trouble to internalize becomes obvious.

  If you can say this, you have only tried with easy things.  The curse of
  high intelligence is that you think /all/ things are easy and are unprepared
  for the really hard things.  People of lesser intelligence have been used to
  dealing with things they do not understand all their lives, and they have
  learned to deal with this in ways that very smart people can never dream of
  grasping.  The kinds of things that you /cannot/ wrap your head around are
  the real defining attributes of your intelligence.

| But in this case and context I don't see any reason to take that trouble.

  I think you are still looking at it from outside.  That (+) => 0, etc, are
  such marvelously elegant things that I embrace them immediately.

| And also, I believe that even if (and) and (or) are internalized as general
| concepts, #+ignore would still be more readable as a commenting mechanism.

  Not if you think about it, which you should.  "Conditionalize this
  expression on the presence of the feature called IGNORE" is /actually/
  obscure -- but you have internalized it in /spite/ of its meaning.  I think
  it is much better to have a real feature and conditionalize on its absence.
  E.g., in Allegro CL source, I would much rather see #-allegro than #+ignore.
  In comforming code, you could write #-common-lisp and know that it would
  never be read because if you write Common Lisp at all, it /will/ be present.

  I used to not care about #+ignore, but now I do not care /for/ it.  It is a
  misguided abuse of the feature mechanism that overloads natural language
  semantics on the name of a feature and that conflates several concept spaces
  in /unnatural/ ways.  If you think /in/ Common Lisp, you would not invent
  this thing.  You would invent #+(or) or #-common-lisp, instead.

Erik Naggum, Oslo, Norway

Act from reason, and failure makes you rethink and study harder.
Act from faith, and failure makes you blame someone and push harder.