[r6rs-discuss] "Unspecified"

Felix pfr6rs at pnkfx.org
Fri Oct 6 10:24:04 EDT 2006


Mike-

On Oct 6, 2006, at 9:44 AM, Michael Sperber wrote:

> William D Clinger <will at ccs.neu.edu> writes:
>
>> ...
>> values in fact, but that partial solution does not
>> solve the problem for other R5RS-compatible code,
>> e.g.
>>
>>     (let* ((v (f ...))
>>            (ignored (vector-set! v i ...))
>>            (v2 (g v ...)))
>>       ...)
>>
>> Another issue, if there is going to be a specific
>> unspecified value, is the name of the procedure
>> that returns it.
>
> One alternative to deal with this would be to truly have (unspecified)
> return an unspecified number of unspecified values (in the sense of
> "the report doesn't tell you how many and what they are) with the
> constraint that (unspecified) must be able to return to a continuation
> that accepts a single value.  This would keep code such as the above
> working, and make the name more appropriate.

Why would changes to the specification of the procedure named  
"unspecified" have anything to do with the behavior of the procedure  
named "vector-set!" ?

Or are you implying that R6RS would also be changed so that  
everywhere we currently see "the value returned by foo is the  
unspeciifed value" we would instead see something to the effect of  
"the values returned by foo are indistinguishable from those that  
would be returned by an invocation of the procedure named unspecified  
to the same continuation" ?

(And if that is the correct inference on my part, then why would this  
alternative make the people arguing for vector-set! to return zero  
values happy?)

-Felix

p.s. note that I am not arguing against your suggestion.  I actually  
was tempted to respond with a "+1" to the idea of making the  
procedure named "unspecified" be a producer of an unspecified number  
or unspecified values (which hopefully would imply the removal of the  
predicate named "unspecified?").  But I decided that such a response  
would imply that I agreed with your statement that this would keep  
the code above working.  I cannot consider agreeing with that  
statement until I understand the reasoning behind it.




More information about the r6rs-discuss mailing list