パスします.
4.76は少し取り組んでみて、以下のような感じになるのかぁという感じでですが、merge-frameの実装がいまいち浮かばず...
(define (conjoin2 conjoins frame-stream) (if (empty-conjunction? conjoins) frame-stream (let ((join1 (qeval (first-conjunct conjoins) frame-stream))) (let ((join2 (conjoins2 (rest-conjuncts conjoins) frame-stream))) (stream-flatmap (lambda (frame1) (stream-flatmap (lambda (frame2) (let ((result (merge-frame frame1 frame2))) (if result (singleton-stream result) the-empty-stream))) join2)) join1)))))