Code Review
Compare your solutions
(define (random-numbers rs)
(define (gen-stream rs last-value)
(if (stream-null? rs)
stream-null?
(let ((request (car (stream-car rs))))
(cond ((eq? request 'generate)
(let ((new-value (rand-update last-value)))
(stream-cons new-value
(gen-stream (stream-cdr rs) new-value))))
((eq? request 'reset)
(let ((new-value (cadr (stream-car rs))))
(stream-cons new-value
(gen-stream (stream-cdr rs) new-value))))
(else (error "INVALID REQUEST -- RANDOM-NUMBER" request))))))
(gen-stream rs random-init))