rendered paste body(define powers-of-2
(let ((current 1))
(lambda () (let ((val current))
(set! current (* 2 current)) val))))
(define (make-power-stream n)
(let ((current 1))
(lambda () (let ((val current))
(set! current (* n current)) val))))
(define current-2 (make-power-stream 2))
(define current-3 (make-power-stream 3))
(define powers-of-2-3
(let ((val2 (current-2)) (val3 (current-3)) (val 1))
(lambda () (cond ((= val2 val3) (begin
(set! val2 (current-2))
(set! val3 (current-3)) val))
((> val2 val3) (begin
(set! val val3)
(set! val3 (current-3)) val))
((< val2 val3) (begin
(set! val val2)
(set! val2 (current-2)) val))))))