Subject: Re: Trivial feature expressions (was Re: Legal ANSI comment form?) From: Erik Naggum <erik@naggum.no> Date: 24 Aug 2002 04:24:58 +0000 Newsgroups: comp.lang.lisp Message-ID: <3239151898356596@naggum.no> * 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.