fork download
  1. ; career cup
  2.  
  3. (define (med1 lt? xs ys)
  4. (let* ((zs (merge xs ys lt?)) (n (length zs)))
  5. (list-ref zs (quotient n 2))))
  6.  
  7. (display (med1 < '(1 3 5 7 9) '(2 4 6 8))) (newline)
  8.  
  9. (define (med2 lt? xs ys)
  10. (let ((n (quotient (+ (length xs) (length ys) 1) 2)))
  11. (let loop ((n (- n 1)) (xs xs) (ys ys))
  12. (cond ((zero? n) (car xs))
  13. ((lt? (car xs) (car ys))
  14. (loop (- n 1) (cdr xs) ys))
  15. ((lt? (car ys) (car xs))
  16. (loop (- n 1) xs (cdr ys)))
  17. (else (loop (- n 1) (cdr xs) ys))))))
  18.  
  19. (display (med2 < '(1 3 5 7 9) '(2 4 6 8))) (newline)
Success #stdin #stdout 0.01s 8672KB
stdin
Standard input is empty
stdout
5
5