Code Review
Compare your solutions
(define (merge-weighted s1 s2 weight)
(cond ((stream-null? s1) s2)
((stream-null? s2) s1)
(else (let ((x1 (stream-car s1))
(x2 (stream-car s2)))
(if (<= (weight x1) (weight x2))
(cons-stream x1 (merge-weighted (stream-cdr s1) s2 weight))
(cons-stream x2 (merge-weighted s1 (stream-cdr s2) weight)))))))
(define (weighted-pairs s t op)
(cons-stream
(cons (stream-car s) (stream-car t))
(merge-weighted
(stream-map (lambda (x) (cons (stream-car s) x))
(stream-cdr t))
(weighted-pairs (stream-cdr s) (stream-cdr t) op)
(lambda (x) (op (car x) (cdr x))))))
(define (merge-weighted s1 s2 weight)
(cond ((stream-null? s1) s2)
((stream-null? s2) s1)
(else (let ((x1 (stream-car s1))
(x2 (stream-car s2)))
(if (<= (weight x1) (weight x2))
(cons-stream x1 (merge-weighted (stream-cdr s1) s2 weight))
(cons-stream x2 (merge-weighted s1 (stream-cdr s2) weight)))))))
(define (weighted-pairs s t op)
(cons-stream
(cons (stream-car s) (stream-car t))
(merge-weighted
(stream-map (lambda (x) (cons (stream-car s) x))
(stream-cdr t))
(weighted-pairs (stream-cdr s) (stream-cdr t) op)
(lambda (x) (op (car x) (cdr x))))))
(define (merge-weighted s1 s2 weight)
(cond ((stream-null? s1) s2)
((stream-null? s2) s1)
(else (let ((x1 (stream-car s1))
(x2 (stream-car s2)))
(if (<= (weight x1) (weight x2))
(cons-stream x1 (merge-weighted (stream-cdr s1) s2 weight))
(cons-stream x2 (merge-weighted s1 (stream-cdr s2) weight)))))))
(define (weighted-pairs s t op)
(cons-stream
(cons (stream-car s) (stream-car t))
(merge-weighted
(stream-map (lambda (x) (cons (stream-car s) x))
(stream-cdr t))
(weighted-pairs (stream-cdr s) (stream-cdr t) op)
(lambda (x) (op (car x) (cdr x))))))
(define (merge-weighted s1 s2 weight)
(cond ((stream-null? s1) s2)
((stream-null? s2) s1)
(else (let ((x1 (stream-car s1))
(x2 (stream-car s2)))
(if (<= (weight x1) (weight x2))
(cons-stream x1 (merge-weighted (stream-cdr s1) s2 weight))
(cons-stream x2 (merge-weighted s1 (stream-cdr s2) weight)))))))
(define (weighted-pairs s t op)
(cons-stream
(cons (stream-car s) (stream-car t))
(merge-weighted
(stream-map (lambda (x) (cons (stream-car s) x))
(stream-cdr t))
(weighted-pairs (stream-cdr s) (stream-cdr t) op)
(lambda (x) (op (car x) (cdr x))))))