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

Re: [Scheme-reports] Comments on draft 6

Arthur A. Gleckler scripsit:
> Thank you.  This helps, but it's still not clear enough.  I've filed Ticket
> #350 <http://trac.sacrideo.us/wg/ticket/350> to make sure that we improve
> this language.

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!`.

Let's face it: software is crap. Feature-laden and bloated, written under
tremendous time-pressure, often by incapable coders, using dangerous
languages and inadequate tools, trying to connect to heaps of broken or
obsolete protocols, implemented equally insufficiently, running on
unpredictable hardware -- we are all more than used to brokenness.
                   --Felix Winkelmann

Scheme-reports mailing list