[r6rs-discuss] "Unspecified"

Anton van Straaten anton at appsolutions.com
Fri Sep 22 00:43:23 EDT 2006


David Cuthbert wrote:
> Anton van Straaten wrote:
> 
>> When you write (if b x) in a program, you haven't specified what 
>> should be returned if b is false.  The value of the expression in that 
>> situation is unspecified.
> 
> 
> This sentence is confusing.  The value of the expression is specified by 
> the standard.  A conforming implementation cannot return #f in this 
> situation (or null, or "", or ...).

You're right, and I assume that this is (at least in part) what Robby 
responded to, also.  I should have written something more along the 
lines that the omission of the <alternate> clause means that a value 
which the programmer has the option to specify, has been left unspecified.

>  > The perpetrator of the unspecified behavior
> 
>> is not the R6RS draft, but rather the program(mer).  The R6RS draft 
>> simply specifies that in such situations, implementations must return 
>> a value which denotes that no value was specified.
> 
> 
> Reading this makes me biased for changing the terminology.  Many readers 
> will subconciously parse "unspecified" as "implementation-defined"; it 
> will take a fair amount of mental gymnastics (for me, at least) to parse 
> it as "the value when no value was specified."

In the current draft, "unspecified" used on its own *does* mean 
"implementation-defined".  The specific phrase "the unspecified value", 
defined in section 5.4, refers to the value which denotes that no value 
was specified.

Anton




More information about the r6rs-discuss mailing list