This page is part of the web mail archives of SRFI 17 from before July 7th, 2015. The new archives for SRFI 17 contain all messages, not just those from before July 7th, 2015.
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/