[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Multiple values not for R4RS



   Posted-From: The MITRE Corp., Bedford, MA
   X-Alternate-Route: user%node@mbunix.mitre.org
   Posted-Date: Fri, 01 Sep 89 08:48:37 EDT
   From: ramsdell@linus.mitre.org
   Date: Fri, 01 Sep 89 08:48:37 EDT

   >> From: Morris J. Katz <katz@Polya.Stanford.EDU>
   ...
   >> During the evaluation of a 'with-values' form, the 'generator' thunk
   >> is first thawed (evaluated to yield some values) and then the 'receiver' is
   >> applied to the values returned by 'generator'.  This means that a
   >> continuation captured in 'generator' includes the application of
   >> 'receiver' to the values returned by 'generator'.  It also includes the
   >> return from 'with-values' of the value(s) returned by 'receiver'.

   The problem I see with this text is that the continuation captured in
   'generator' may not be the one your text suggests.  Consider

   (baby-doe
     (lambda ()
	(let ((x (call-with-current-continuation
		   (lambda (c) ...))))
	   ....))
     ...) 

We can leave it to the editors (since that seems to be the current
sentiment), but I believe that my wording is actually correct relative
to your example.  The continuation which is captured does include the
application of 'receiver' to the values returned by 'generator', just
possibly not as the first action to be taken by the continuation.  I
tried to be fairly careful in my wording precisely because of the
example you have given.
-------------------------------------------------------------------------------
Morry Katz
katz@polya.stanford.edu
-------------------------------------------------------------------------------