[r6rs-discuss] set-car!

From: William D Clinger <will>
Date: Sat, 23 Jun 2007 11:03:26 -0400

Anton van Straaten wrote:
> Was there ever "a standard way to redefine standard procedures"?

Unequivocally yes.

> The equivocation in R5RS section 6, "Standard procedures",
> is not promising in this respect.

What on earth are you talking about? R6RS section 6
starts out with a modest paraphrase of the language in
IEEE Std 1178-1990. The main difference, perhaps, is
that the IEEE standard italicizes "any", presumably to
dispel any doubt on the part of skeptics such as Anton.
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.

If you're wondering what "These operations do not
modify the behavior of Scheme's built-in procedures"
means, it means exactly what it says: You can redefine
any variable without breaking anything.

For example, you can redefine set-car! and set-cdr!
without changing the behavior of any system procedures
that might happen to use them. Redefining them will
certainly make their original values inaccessible to
the rest of your program, unless of course their
original values had been captured by some part of the
program prior to the redefinition.

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.

Will
Received on Sat Jun 23 2007 - 11:03:26 UTC

This archive was generated by hypermail 2.3.0 : Wed Oct 23 2024 - 09:15:01 UTC