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

Re: [Scheme-reports] Comments on draft 6

Here's my proposal:

I think R5RS/R7RS provides too much generality and should be clawed back.
The implementations which allow `set!` on unbound identifiers actually
don't make the identifiers contain unspecified values.  For example,
we don't have implementations whose initial state binds `foo` to `'foo`
and `bar` to `'bar`, or anything of the sort.  Nor do they come back with
`#<undef>` or silence.  Instead, an error is signalled when you attempt
to evaluate `foo` and `bar`.

What I'd like to do is to drop this language altogether and just say (as
we already do) that it's an error to set an undefined identifier.  Then we
can add a note saying that some implementations extend the standard by
automatically defining any undefined identifier before setting it.
This language belongs with `set!`.

That sounds great.

Of course, I come from MIT Scheme, which doesn't allow `set!' before `define'.  It would be interesting to hear from someone who uses an implementation that does.
Scheme-reports mailing list