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