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

Re: perhaps I've missed something ...



Matthias Felleisen <matthias@xxxxxxxxxxx> writes:

> Then why do you suggest that they are the same concept? Worse, why do you
> suggest using the same syntactic construction for both?

Because they are related concepts?  Because most other programming
languages use the same syntactic construction for both?  Because
many people seem to find that a natural way of doing things?
And because of [below]?

> >  At least for top-level environments, the two forms are equivalent.
> I don't even understand this claim. What does it mean? 

I mean that:
        (set! x (+ x 1))
and:
        (set! (lookup-in-toplevel-enviroment 'x)
              (+ (lookup-in-toplevel-enviroment 'x) 1))
are equivalent when x is not bound in the lexical environment.

> AND: Why would you ever use set! on top-level variables except for
> pedagogic reasons?

Because you want to change their values and there is no other way
to do it?  (define only works at top level.)

> >  >    If it weren't for set!, Scheme would be a perfect data-oriented
> >  >    language on top of mathematics (and thus mathematical reasoning). 
> >  And pray how is set! different from set-field-of-something! in this respect?
> That's what I mean. Read Felleisen-Friedman POPL 87, LISP88, and
> Felleisen-Hieb TCS 91. Read Crank-Felleisen POPL 90. Read Mason's
> dissertation (Stanford 87) and Mason-Talcott's series of papers.

Give me a break.  I am not one of your graduate students.  I don't
have those papers, I can't find any of those papers (except tcs91) on
your web-site, and I don't have time to wade through multiple theory
papers.  (I will also admit hard-core theory was never my strong suit,
and I'm a decade out of practice.)

But you really mean to claim that set-cdr! is consistent with Scheme
being a "perfect data-oriented language on top of mathematics (and thus
mathematical reasoning)" but set! is not?  You also claim this result
has practical consequences for language design?  If so, perhaps you
could point me at the one or two most-accessible papers that explains this?
-- 
	--Per Bothner
per@xxxxxxxxxxx   http://www.bothner.com/~per/