[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