[r6rs-discuss] [Formal] Reduce over-specification as well as under-specification.

From: John Cowan <cowan>
Date: Tue Nov 14 15:56:32 2006

William D Clinger scripsit:

> The draft R6RS often specifies things that do not need
> to be specified, even as it neglects to specify related
> things that do need to be specified.

I strongly agree in general. "We have done the things that
we ought not to have done, and we have left undone the
things that we should have done, and there is no health in us."

However, I dissent with a few specifics.

> The R6RS should say that correct programs do not try
> to mutate immutable objects, and that implementations
> should (not "must") raise an exception when mutation
> of an immutable object is attempted.

I think "must" is correct. To make it otherwise is
to allow programs to corrupt essential data structures.

> Since the draft R6RS does not specify or even constrain
> the output produced when a value that has no external
> representation is passed to procedures such as write,
> implementations are free to print the unspecified value
> however they like. An R6RS-conformant implementation
> might print the unspecified value as (), or as #f, or
> as 42.

This is not specific to the unspecified value, but may well
be extended to any value whose external representation is
not given. Indeed, I cannot see that write is forbidden
to raise an exception when passed such a thing.

-- 
Work hard,                                      John Cowan
play hard,                                      cowan_at_ccil.org
die young,                                      http://www.ccil.org/~cowan
rot quickly.
Received on Tue Nov 14 2006 - 15:56:25 UTC

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