[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:

       (values 1 2)

   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

   (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.