Code Review
Compare your solutions
#lang racket
(define (solve f y0 dt)
(define y (integral (delay dy) y0 dt))
(define dy (stream-map f y))
y)
(define (integral delayed-integrand initial-value dt)
(stream-cons initial-value
(let ((integrand (force delayed-integrand)))
(if (stream-empty? integrand)
empty-stream
(integral (stream-rest integrand)
(+ (* dt (stream-first integrand))
initial-value)
dt)))))
(stream-ref (solve (lambda (y) y) 1 0.001) 1000)