3.82 Exercise 3.82
(define (monte-carlo-stream experiment-stream passed failed) (define (next passed failed) (cons-stream (/ passed (+ passed failed)) (monte-carlo-stream (stream-cdr experiment-stream) passed failed))) (if (stream-car experiment-stream) (next (+ passed 1) failed) (next passed (+ failed 1)))) (define (stream-with f) (cons-stream (f) (stream-with f)))
(define (estimate-integral-stream P x1 x2 y1 y2) (define (test-point) (P (+ x1 (random (- x2 x1))) (+ y1 (random (- y2 y1))))) (monte-carlo-stream (stream-with test-point) 0 0))