[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: R4.97RS comments
Date: Sat, 10 May 1997 11:16:30 -0500 (CDT)
From: Shriram Krishnamurthi <shriram@cs.rice.edu>
(1) Might I suggest a wording change? This is on page 33, about
`interaction-environment'. The phrase "dynamically typed by the user"
sounds odd to my ears, and it assumes a certain mode of entry too.
How about "entered by the user"?
The phrase is intended to distinguish between code entered before
the program began running and code entered later. `Typed' could
be replaced by `entered', I suppose.
(2) A more serious comment: The macro provided for `begin' on pages
42-43 appears to be incorrect, even allowing for the caveat provided.
It works only if the individual expressions return a single value:
(begin
(values 1 2)
3)
would (incorrectly) signal an error with that expansion.
Signalling an error would not be incorrect. The effect of returning
multiple values is specified only for continuations created by
CALL-WITH-VALUES.
(3) Actually, the text for `let' (page 10) says nothing about multiple
values. I think this should be corrected by stating "single value"
wherever appropriate (which is most everywhere). This is a very
pervasive change, but it seems to be the price to pay for introducing
multiple values; without this, too many expressions would have
unspecified behavior. (Perhaps there is already some cover-all phrase
that I'm missing?)
There is a blanket statement in the discussion of continuations:
Except for continuations created by the CALL-WITH-VALUES
procedure, all continuations take exactly one value. The
effect of passing no value or more than one value to continuations
that were not created by CALL-WITH-VALUES is unspecified.
-Richard