Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!uwvax!rutgers.rutgers.edu!nysernic!b.nyser.net!weltyc From: weltyc@b.nyser.net (Christopher A. Welty) Newsgroups: comp.lang.lisp Subject: Re: EQ and EQUAL Message-ID: <290@nysernic> Date: Mon, 20-Jul-87 11:03:57 EDT Article-I.D.: nysernic.290 Posted: Mon Jul 20 11:03:57 1987 Date-Received: Tue, 21-Jul-87 04:43:46 EDT References: <22@citcom.UUCP> <13278@topaz.rutgers.edu> <6601@reed.UUCP> <3927@spool.WISC.EDU> <6638@reed.UUCP> Sender: nobody@nysernic Reply-To: weltyc@nic.nyser.net (Christopher A. Welty) Organization: RPI Computer Science Dept. Lines: 56 Keywords: pointers Summary: eq IS important! In article <6638@reed.UUCP> bart@reed.UUCP (Bart Massey) writes: > ... > I) I want *any* (a b c). This is by *far* the most common >case in my (admittedly somewhat limited) experience. In this case, I It is true that this is more common. > > I must understand the internals of my implementation >*very well* to insure to myself that I am always putting the proper >pointer in. Such details actually vary a great deal from >implementation to implementation, so I must write for a specific >interpreter. > Well, this is not really all true. If you just understand the way LISP is supoosed to work, and you are using a more standard form of LISP, there are certain things that are guaranteed to work in a certain way. Of course you are changing this guarantee. I have written portable LISP code using complex pointer manipulations. > > Case II) I am only interested in finding my pointer. I don't >really care that it happens to be pointing to the list (a b c). This >is the case which I have never seen occur in practice, and have a hard >time thinking of an example of. There are applications of this in practice. They are not examples that are easy to think of, nor are they simple enough to explain briefly, but they come up when doing very large real applications in LISP. Being able to get to your pointers is very important. Why do you think C is so popular? Because pointers are very useful and allow you to do flexible things. Sure, some people view them as "too low level" for a language that is supposed to support high level abstractions. And using this apprach can sometimes make *code* less readable. [Of course, if programmers were taught earlier on how to correctly DOCUMENT code as they are writing it, this wouldn't be a problem, and we wouldn't have to worry about making computer languages that read like english (COBOL was an attempt at this).] Hardware, however, has not gotten fast enough that programmers can afford to write LISP code that is not efficient... Don't get me wrong this is not a flame. I use LISP quite a lot, I teach it, I think it's a great language with a lot of great ideas. I think it will be around for a long time. But there are some SERIOUS problems with using it for real work, and you have proposed good ideas for helping it past some of its major problems, this is good! But don't eliminate important elements of the language because you can't think of an example of how it could be used. If it's there, SOMEONE must be using it! Christopher Welty - Asst. Director, RPI CS Labs weltyc@cs.rpi.edu ...!seismo!rpics!weltyc