Mark H Weaver <[email protected]> writes:
> John Cowan <[email protected]> writes:
>
>> On Tue, Aug 28, 2018 at 3:01 AM Mark H Weaver <[email protected]> wrote:
>>
>> In RnRS, (define a (if #f #f)) is allowed and guaranteed to assign
>> *some* object to 'a' without signalling an error.
>>
>> Actually, the phrase used is "the result is unspecified", which unfortunately
>> is not defined in any RnRS.
>
> That's the phrase used in R7RS-small, which fails to define it, as you
> noted, but that shortcoming is limited to R7RS.
Actually, the behavior _is_ clearly defined, in the formal denotational
semantics in both R5RS and R7RS. If you learn how to read those, you'll
see that there's no question that (if #f #f) is guaranteed to return
exactly one unspecified value.
Mark