SICP sicp 121: 3.52 exercises 1213.52 and
Exercise 3-52 original
Exercise 3.52. Consider the sequence of expressions
(define sum 0) (define (accum x) (set! sum (+ x sum)) sum) (define seq (stream-map accum (stream-enumerate-interval 1 20)))(define y (stream-filter even? seq)) (define z (stream-filter (lambda (x) (= (remainder x 5) 0)) seq)) (stream-ref y 7) (display-stream z)
What is the value of sum after each of the above expressions is evaluated? What is the printed response to evaluating the stream-ref and display-stream expressions? Wocould these responses differ if we had implemented (delay) simply as (lambda () without using the optimization provided by memo-proc? Explain.
Code
(define seq (stream-map accum (stream-enumerate-interval 1 20)))sum;Value: 1(define y (stream-filter even? seq))sum;Value: 6(define z (stream-filter (lambda (x) (= (remainder x 5) 0)) seq))(stream-ref y 7);Value: 136