William D Clinger wrote:
> Anton van Straaten wrote:
>
>>Was there ever "a standard way to redefine standard procedures"?
>
>
> Unequivocally yes.
...
> For example, you can redefine set-car! and set-cdr!
> without changing the behavior of any system procedures
> that might happen to use them.
In what sense, then, is this "a standard way to redefine standard
procedures"?
If the quoted claim is interpreted as merely an indirect way of saying
that R5RS allows any top-level variable to be mutated, then it's clearly
true and uncontroversial.
However, when it comes to redefining standard procedures, R5RS section 6
first specifies that defining or mutating top-level variables does *not*
redefine standard procedures as far as other standard procedures are
concerned, and then subsequently strongly suggests that those procedures
might in fact be affected by assignment under certain conditions --
otherwise, why be so specific about what might be affected by the
threatened "unspecified effect"?
This is clearly "allowing the possibility of several different
meanings", i.e. a dictionary definition of equivocal, when it comes to
the meaning of mutating certain top-level variables.
However, I should make it clear that I meant the word "equivocate" in
the sense of "to avoid commitment", and did not intend to imply any
intent to deceive or misguide.
> Another difference is that the IEEE standard says that
> "conforming programs shall not" assign to top-level
> variables until they have been defined, presumably to
> prevent Anton from trying to read the last sentence of
> the second paragraph as equivocation.
Since Alan was discussing R5RS, so was I. The IEEE version is indeed
narrower, and I appreciate your pointing that out.
> That is a fundamental aspect of R5RS Scheme. One would
> hope the editors understand the magnitude of the changes
> they have introduced in the draft R6RS.
Oh wait, you mean *any* top-level variable was mutable under R5RS?
Uh-oh... WHAT HAVE I DONE?!
Anton
Received on Sat Jun 23 2007 - 12:54:43 UTC
This archive was generated by hypermail 2.3.0
: Wed Oct 23 2024 - 09:15:01 UTC