Код Ревью

Сравни свои решения

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