; career cup (define (med1 lt? xs ys) (let* ((zs (merge xs ys lt?)) (n (length zs))) (list-ref zs (quotient n 2)))) (display (med1 < '(1 3 5 7 9) '(2 4 6 8))) (newline) (define (med2 lt? xs ys) (let ((n (quotient (+ (length xs) (length ys) 1) 2))) (let loop ((n (- n 1)) (xs xs) (ys ys)) (cond ((zero? n) (car xs)) ((lt? (car xs) (car ys)) (loop (- n 1) (cdr xs) ys)) ((lt? (car ys) (car xs)) (loop (- n 1) xs (cdr ys))) (else (loop (- n 1) (cdr xs) ys)))))) (display (med2 < '(1 3 5 7 9) '(2 4 6 8))) (newline)