perhaps I've missed something ... John Clements (20 Jan 2000 22:21 UTC)
Re: perhaps I've missed something ... Lars Thomas Hansen (20 Jan 2000 22:38 UTC)
Re: perhaps I've missed something ... Shriram Krishnamurthi (20 Jan 2000 22:52 UTC)
Re: perhaps I've missed something ... Lars Thomas Hansen (20 Jan 2000 23:02 UTC)
Re: perhaps I've missed something ... John Clements (20 Jan 2000 22:58 UTC)
Re: perhaps I've missed something ... Lars Thomas Hansen (20 Jan 2000 23:05 UTC)
Re: perhaps I've missed something ... John Clements (20 Jan 2000 23:12 UTC)
Re: perhaps I've missed something ... sperber@xxxxxx (21 Jan 2000 07:38 UTC)
Re: perhaps I've missed something ... Lars Thomas Hansen (20 Jan 2000 22:44 UTC)
Re: perhaps I've missed something ... John Clements (20 Jan 2000 23:09 UTC)
Re: perhaps I've missed something ... Per Bothner (20 Jan 2000 23:01 UTC)
Re: perhaps I've missed something ... Matthias Felleisen (20 Jan 2000 23:18 UTC)
Re: perhaps I've missed something ... Per Bothner (20 Jan 2000 23:55 UTC)
Re: perhaps I've missed something ... Matthias Felleisen (21 Jan 2000 01:04 UTC)
Re: perhaps I've missed something ... Per Bothner (21 Jan 2000 01:49 UTC)
Re: perhaps I've missed something ... Matthias Felleisen (21 Jan 2000 02:40 UTC)
Re: perhaps I've missed something ... thi (21 Jan 2000 09:58 UTC)
Re: perhaps I've missed something ... Per Bothner (21 Jan 2000 18:36 UTC)
Re: perhaps I've missed something ... sperber@xxxxxx (22 Jan 2000 10:32 UTC)
Re: perhaps I've missed something ... Per Bothner (23 Jan 2000 20:02 UTC)
Re: perhaps I've missed something ... Shriram Krishnamurthi (23 Jan 2000 20:50 UTC)
Re: perhaps I've missed something ... Per Bothner (23 Jan 2000 21:25 UTC)
Re: perhaps I've missed something ... sperber@xxxxxx (24 Jan 2000 07:30 UTC)
Re: perhaps I've missed something ... Michael Livshin (24 Jan 2000 16:55 UTC)
Re: perhaps I've missed something ... sperber@xxxxxx (25 Jan 2000 07:43 UTC)
Re: perhaps I've missed something ... Michael Livshin (25 Jan 2000 11:02 UTC)
Re: perhaps I've missed something ... sperber@xxxxxx (25 Jan 2000 11:31 UTC)
Re: perhaps I've missed something ... Matthias Felleisen (25 Jan 2000 13:47 UTC)
Re: perhaps I've missed something ... sperber@xxxxxx (24 Jan 2000 07:29 UTC)
Re: perhaps I've missed something ... John Clements (20 Jan 2000 23:59 UTC)
Re: perhaps I've missed something ... Per Bothner (21 Jan 2000 00:18 UTC)
Re: perhaps I've missed something ... Shriram Krishnamurthi (21 Jan 2000 00:03 UTC)
Re: perhaps I've missed something ... Per Bothner (21 Jan 2000 00:37 UTC)
Re: perhaps I've missed something ... Shriram Krishnamurthi (21 Jan 2000 08:39 UTC)

Re: perhaps I've missed something ... Matthias Felleisen 20 Jan 2000 23:18 UTC

I am sorry to see that there is such a huge misunderstanding in our own
community.

1. Levels of programmers aside, set! and set-field-of-something!  are two
   different concepts:

    - set-field-of-something! is an operation on a piece of data that is
      first-class.

    - set! is a about mutating a _variable_, which is a syntactic
      constructor.

   The idea of reifying the environment and introducing an invalid modifier
   on it doesn't change this. It only emphasizes it.

   If it weren't for set!, Scheme would be a perfect data-oriented language
   on top of mathematics (and thus mathematical reasoning).

2. If we throw out let's, and I am all in favor, we should throw out
   internal define as well. It's an embarrassment that Scheme doesn't get
   the move from global defines to local defines right.

   If you don't know what I mean, evaluated the following

   (define x ((lambda (z) (lambda (w) w)) y))
   (define y 5)
   (x 10)

   Now move the define's into local positions:

   (define (f) (begin
       (define x ((lambda (z) (lambda (w) w)) y))
       (define y 5)
       (x 10)))
   (f)

   Why in the world do we assign different semantics to the two?

   [DrScheme has local in the teaching languages and does preserve
   the positive and the negative semantics.]

-- Matthias