~rhcarvalho/+junk/racket

50.1.5 by Rodolfo Carvalho
Update scripts. Now merge-sort.rkt is a bit cleaner. Add rackunit tests.
1
#lang racket/base
2
(require ;racket/list
3
         rackunit)
4
5
(provide list-merge)
6
7
;; Merge two sorted list into a sorted list
8
(define (list-merge a b)
9
  (cond
10
    ;[(empty? a) b]
11
    ;[(empty? b) a]
12
    [(zero? (length a)) b]
13
    [(zero? (length b)) a]
14
    [else (if (< (car a) (car b))
15
              (cons (car a) (list-merge (cdr a) b))
16
              (cons (car b) (list-merge a (cdr b))))]))
17
18
(check-equal? (list-merge '(1 10 20 30) '(2 9 15 25 42 56))
19
              '(1 2 9 10 15 20 25 30 42 56))