;; insert : number list -> list ;; inserts n into l, assuming it is sorted (define (insert n l) (cond [(empty? l) (cons n empty)] [(cons? l) (cond [(<= n (first l)) (cons n l)] [else (cons (first l) (insert n (rest l)))])])) ;; examples: (insert 2 empty) 'shouldbe (cons 2 empty) (insert 2 (cons 3 empty)) 'shouldbe (cons 2 (cons 3 empty)) (insert 2 (cons 1 empty)) 'shouldbe (cons 1 (cons 2 empty)) ;; sort : list -> list ;; to sort l, in ascending order (define (sort l) (cond [(empty? l) empty] [(cons? l) (insert (first l) (sort (rest l)))])) ;; examples (sort empty) 'shouldbe empty (sort (cons 1 (cons 2 empty))) 'shouldbe (cons 1 (cons 2 empty)) (sort (cons 2 (cons 1 empty))) 'shouldbe (cons 1 (cons 2 empty))