[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: A value for "nothing"
From: |
Mark H Weaver |
Subject: |
Re: A value for "nothing" |
Date: |
Tue, 28 Aug 2018 11:38:41 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) |
John Cowan <address@hidden> writes:
> On Tue, Aug 28, 2018 at 3:01 AM Mark H Weaver <address@hidden> 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.
In R6RS, section 11.4.3 (Conditionals) provides this example:
(if #f #f) ===> unspecified
whose meaning is defined in section 6.6 (Evaluation examples), which
states:
Moreover, the "===>" symbol is also used to explicitly say that the
value of an expression is unspecified. For example:
(eqv? "" "") ===> unspecified
I take the use of the singular form of "value" here to imply that it
returns only one value.
R5RS is even more clear. It states "If <test> yields a false value and
no <alternate> is specified, then the result of the expression is
unspecified."
Section 1.3.2 of R5RS makes it crystal clear what that means:
If the value of an expression is said to be "unspecified," then the
expression must evaluate to some object without signalling an error,
but the value depends on the implementation; this report explicitly
does not say what value should be returned.
> Racket produces a syntax error in this situation at least in its
> default language.
Racket has diverged from Scheme quite a bit, to the point that they
don't even call the language "Scheme" anymore, but rather "Racket".
Mark
- Re: A value for "nothing", (continued)
- Re: A value for "nothing", Mark H Weaver, 2018/08/26
- Re: A value for "nothing", Matt Wette, 2018/08/26
- Re: A value for "nothing", tomas, 2018/08/27
- Re: A value for "nothing", Mark H Weaver, 2018/08/27
- Re: A value for "nothing", Hans Ã…berg, 2018/08/27
- Re: A value for "nothing", Mark H Weaver, 2018/08/27
- Re: A value for "nothing", Matt Wette, 2018/08/27
- Re: A value for "nothing", Mark H Weaver, 2018/08/28
- Re: A value for "nothing", John Cowan, 2018/08/28
- Re: A value for "nothing",
Mark H Weaver <=
- Re: A value for "nothing", Mark H Weaver, 2018/08/28
- Re: A value for "nothing", John Cowan, 2018/08/28
- Re: A value for "nothing", Mark H Weaver, 2018/08/28
- Re: A value for "nothing", Mark H Weaver, 2018/08/28
Re: A value for "nothing", Panicz Maciej Godek, 2018/08/26
Message not available
Message not available