From: ········@bayou.uh.edu
Subject: Re: C++ briar patch (Was: Object IDs are bad)
Date: 
Message-ID: <5mima3$8cf$1@Masala.CC.UH.EDU>
Peter da Silva (·····@nmti.com) wrote:
: In article <············@masala.cc.uh.edu>,
: ········@bayou.uh.edu <········@Bayou.UH.EDU> wrote:
: > It's nice to know that you've kept enough of a handle on this thread
: > to supply a specific reference, yet it's depressing to know that you
: > haven't kept enough of a handle on this thread to know what I've
: > been talking about all along.

: That's just it. The message you were responding to wasn't talking about a
: generalized "C" pointer, but a more restricted construct that's very much
: closer to half a lisp "cons" cell than anything in "C".

: If you're not talking about with this more limited and safer pointer, then
: there's nothing much to talk about. Do let me know.

For the love of Shub Niggurath (The Goat With a Thousand Young), I've
been trying to drill this into your head from the beginning!


: > Arbitrary structures of these _LISTS_ are nothing more than _LISTS_ of
: > _LISTS_.

: No, they're not. They're general directed graphs, of which a list is a
: specific case. You can use RPLACA and RPLACD to build circular structures
: that can't be expressed in list notation:

You can use tags to build cyclic structures while utilizing list
notation -- of course you wouldn't know this, since by your own
admission you haven't used Lisp since they stopped making Ford
Pintos.


[Snip]

: > Again there is no resemblence to the traditional pointer --
: > we don't allocate to it,

: (set 'a '(a b))

: Yes, the memory allocation is implicit, not explicit. And you don't need to
: explicitly deallocate it.

THAT IS WHAT I AM SAYING!!!!

Please please please tell me you are doing this to annoy me, because
if you aren't... no the implications are far too grave.  

In Scheme:

(define an-atom 'x)
(define a-simple-list '(1 2 3))
(define a-compound-list '((1 2 3) (4 5 6)))

Now, when I see the above code, I see definitions.  Bindings of
names like "an-atom" to a symbol, "a-simple-list" to a list of
atoms, and "a-compound-list" to a list of lists.  If you read
any textbook on the subject, you will see similar descriptions.
Pointers are not mentioned because they are an _IMPLEMENTATION
DETAIL_, and are part of the interface -- at least not in
any noticable manner (ie: the programmer need not go out of
her/his way to utilize them).

This is my point.


: > we don't use any stupid dereferencing
: > symbols, etc...

: (car a)

: This is an issue of syntax, not semantics. You could write a macro that
: converted "*a" into "(car a)" or "(cdr a)".

We are arguing about syntax, NOT SEMANTICS.  What car does behind
the scenes is completely irrelevant, it is the interface, how
we are able to think about it that matters, and what matters
is that car returns the first element of a list while cdr
returns the rest of the list -- read any Lisp textbook, you
will find descriptions like this.  You won't find nonsense
like "(car a) is the equivalent of *a".


: > When you can show me an example of Lisp code that dereferences
: > pointers ala C or Pascal then I'll believe you, until then,
: > you have proven nothing.

: See above.

I saw the above, and my statement stands.  You have shown nothing
in the way of explicit memory allocation, deallocation, or 
dereferencing.  Instead you picked up a few functions, and managed
to draw parallels with pointer operations (possibly resorting to
implementation details).  That proves nothing.

Again, the whole issue is one of interface.  We are seeing ways
of setting values, using lists, and extracting elements from
lists.  How they are implemented is 100% irrelevant to my
point; what matters is what WE ARE SEEING.  I see no pointers,
I see objects.  I could force myself to see pointers by
reasoning about the implementation details much the same way
I could force myself to see pointers in a dozen other languages.

Remember, we are not talking about semantics, we never were.


: -- 
: The Reverend Peter da Silva, ULC, COQO, BOFH, 3D0G, KIBO, POPE Ziggy Wotzit II.
: Har du kramat din varg, idag? `-_-'                                Kulanu Kibo.
: Hail Eris! All Hail Discordia!                                 Vi er alle Kibo.
: HEIL KIBO! HEIL KIBO! HEIL KIBO!                            Wir sind alle Kibo.

--
Cya,
Ahmed