Mark H Weaver <m...@netris.org> writes: > John Cowan <co...@ccil.org> writes: > >> On Tue, Aug 28, 2018 at 3:01 AM Mark H Weaver <m...@netris.org> 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