Andre van Tonder wrote:
> Thank you to Alexandro and John for pointing out the bugs in the
> implementation. I have fixed them and included the suggested extra
> tests in the update below.
> (define (force promise)
> (let ((content (unbox (unbox promise))))
> (case (car content)
> ((eager) (cdr content))
> ((lazy) (let* ((promise* ((cdr content)))
> (content (unbox (unbox promise))))
Shouldn't that last line use promise*? If so, how come your tests pass?
> (when (not (eqv? (car content) 'eager)) ; for
> reentrancy test 3
> (set-box! (unbox promise) (unbox (unbox promise*)))
> (set-box! promise* (unbox promise)))
> (force promise))))))
Matthias.