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

[chaynes@sunfish.cs.indiana.edu: comments? ]




   Date: Sun, 27 Jan 91 15:28:25 EST
   From: Chris Haynes <chaynes@sunfish.cs.indiana.edu>

   "I think you mean it's an error to invoke the continuation of <expression>
   or <init> more than once."

Chris is correct. We meant to write: 

Subsection 4.2.2 (on letrec):
-----------------------------
"Warning: It is an error to invoke the continuation of
 <expression> more than once." 

Subsection 5.2 (on define):
---------------------------
"Warning: It is an error to invoke the continuation of
 <init> more than once."

The code for the LETREC expansion in Subsection 7.3 stays the same. 

For DEFINE's in Subsection 7.1, we should add something like: 

     (define var val)
	==
     (let ((thunk (lambda () val)) (hasnt-returned-yet? #t))
       (let ((result (thunk)))
	 (if hasnt-returned-yet?
	     (begin
	       (set! hasnt-returned-yet? #f)
	       (set! var result))
	     (error "It is an error to call such continuations")))

-- Bruce and Matthias