Newsgroups: comp.lang.lisp
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!news.mathworks.com!europa.eng.gtefsd.com!howland.reston.ans.net!pipex!dircon!rheged!simon
From: simon@rheged.dircon.co.uk (Simon Brooke)
Subject: Re: SETF (was Re: Why do people like C? (Was: Comparison: Beta - Lisp))
Message-ID: <Cy62A5.5G7@rheged.dircon.co.uk>
Organization: none. Disorganization: total.
References: <Cxxwx0.1nC@rheged.dircon.co.uk> <hbakerCy17CC.vx@netcom.com> <Cy3E67.42K@rheged.dircon.co.uk> <Cy5Bv7.JDy@cogsci.ed.ac.uk>
Date: Mon, 24 Oct 1994 07:32:27 GMT
Lines: 54

In article <Cy5Bv7.JDy@cogsci.ed.ac.uk>,
Jeff Dalton <jeff@aiai.ed.ac.uk> wrote:
>In article <Cy3E67.42K@rheged.dircon.co.uk> 
>simon@rheged.dircon.co.uk (Simon Brooke) writes:
>>I'm sorry, I don't think this addresses the real problem. There's a
>>fundamental difference between a top-level object which exists in the
>>name space, and an anonymous cons cell. It makes a great deal of sense
>>to have a homogenous way of changing:
>>
>>	* the value of a variable;
>>	* the value of a property of some name;
>>	* the value of an instance variable of some object;
>>	* the value of a class variable of some class.
>
>How about a slot in a modifiable object?  That's a paradigm
>case, and yet it's not clear that you list it at all.
>
Yes, the list was not exhaustive; I could equally have listed an
element of an array.

>In any case, the things you list are not all "top-level objects
>which exist in the name space".  For instance, instance vars are
>local to the object.
>
No, that was careless use of language on my part. I'm still failing to
find the form of words I need. But clearly, none of these things are
anonymous; each is uniquely accessible by name.

>>My objection to SETF is that the way it alters list structure is
>>destructive. As it has become/was intended to become the default way
>>of changing values (aluminium book p94), LisP beginners will no longer
>>learn the fundamental software engineering principle outlined above,
>>so that the perceived power and expressiveness of the language is
>>impoverished.
>
>Bull.

Jeff, that is not an argument which does you credit. You might argue:

* that a late copying programming style is undesirable for other
  reasons;
* that SETF was never intended to become the default way of changing
  values;
* that beginners _are_ still taught to use CONS rather than SETF when
  operating on lists;
* that destructively altering the values of anonymous cons cells makes
  debugging more fun;
* that my real objection to SETF is not what I've stated, but
  something irrational or religious

or some other argument which I haven't thought of -- in which case I
might learn something from you, as I often have done in the past.
-- 
---------simon@rheged.dircon.co.uk
