[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: perhaps I've missed something ...

Shriram Krishnamurthi <shriram@xxxxxxxxxxx> writes:

> Per Bothner wrote:
> > First, most "beginning students" actually have experience with
> > languages (such as C or Java) that are more like the proposal.
> Sorry, C and Java's models are wholly distinct.  Java's is essentially 
> the same as Scheme's, and C's, well, isn't.

I assume you misunderstood my point, but I fail to see a way in which
"Java is essentially the same as Scheme and C isn't" that is relevant
to this discussion.

In Java you write:
        a[i].b(j).c = v;
just like in C - and just like in extended-set!.

Java also has the concept of "properties" (as in JavaBean properties),
but I'll leave that out of the discussion.

> You would no longer be able to tell which variables must be boxed and
> which ones not.  Since you can, in fact, tell this in Scheme, the two
> are semantically unrelated.

Perhaps I should re-phrase my point.  Consider:
(G) (set! top-level-variable v)
(L) (set! lexical-variable v)
(F) (set-member! table selector v).

I claim (F) is closer semantically to (G) than (G) is to (L).
Given that we use set! for both (G) and (L), I find the arguments
against using set! for (F) as well to be unconvincing.
	--Per Bothner
per@xxxxxxxxxxx   http://www.bothner.com/~per/