]> git.rkrishnan.org Git - sicp.git/blob - src/sicp/ex3_81.rkt
Solutions to 3.73, 3.74, 3.75, 3.76, 3.77, 3.78, 3.79, 3.80 and 3.81
[sicp.git] / src / sicp / ex3_81.rkt
1 #lang racket
2
3 (define (rand-seq init req-stream)
4   (let ((req (stream-car req-stream)))
5     (cond ((eq? req 'reset)
6            (let ((new-init (stream-car (stream-cdr req-stream))))
7              (let ((new-rand-val (rand-update new-init)))
8                (cons-stream
9                 new-rand-val
10                 (rand-seq new-rand-val 
11                           (stream-cdr (stream-cdr req-stream)))))))
12           ((eq? req 'generate)
13            (let ((new-val (rand-update init)))
14              (cons-stream 
15               new-val
16               (rand-seq new-val (stream-cdr req-stream))))))))
17