[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.