[r6rs-discuss] "Unspecified"

From: AndrevanTonder <andre>
Date: Fri Sep 22 07:49:03 2006

On Thu, 21 Sep 2006, Anton van Straaten wrote:

> One job of the R6RS is to assign meaning to such phrases. In this example,
> it does this by specifying that when a program omits the <alternate> term,
> then the phrase in question returns a value which denotes that no value was
> specified by the program at that point.

But a value /is/ specified by the program at that point according to r6rs
(namely the value #<unspecified>).

If I write my program so that it
intentionally returns #<unspecified> if 5 is odd, and #t if 5 is not odd,
does this mean that the output of my program does not specify that 5 is
odd?

In fact, the whole point of "unspecified" in r5rs was that I could *not* use
the program

      (if (even? 5)
          #t))

to determine whether 5 was odd, since the value of this expression, being
unspecified, could in fact have been #t. In r6rs I can tell whether it is odd
from the output, which seems to contradict your assertion that "no value was
specified by the program".

I'm smelling a liar's paradox. If one wants to avoid being circular,
one could say that:

"the *r6rs* expression in question returns a (specified) value which denotes
that no return value was specified in *r5rs* for the expression."

So maybe #<unspecified-by-r5rs> would be a more accurate name for it ;-)

This would be a weird way to write a language specification, so I would just
call it something else instead.

Cheers
Andre
Received on Fri Sep 22 2006 - 07:46:27 UTC

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