<< Previous exercise (4.17) | Index | Next exercise (4.19) >>


 this won't work. because, in (let ((a <e1>) (b <e2>))), when compute e2, it depends y, but we only have a not y. For the same reason, the solution in text will work. 


I think both method will work, because (eval "dy") is 'delayed'.
But the expression "(stream-map f y)" defined in dy will be evaluated while y hasn't been defined yet.
So former method won't work.