;; Merge two sorted lists of numbers and delete duplicates (define merge (lambda (lst1 lst2) (cond ((null? lst1) (remove-adjacent-duplicates lst2)) ((null? lst2) (remove-adjacent-duplicates lst1)) ((< (car lst1) (car lst2)) (cons-if-different (car lst1) (merge (cdr lst1) lst2))) (else (cons-if-different (car lst2) (merge lst1 (cdr lst2))))))) (define cons-if-different (lambda (e lst) (if (equal? e (car lst)) lst (cons e lst)))) (define remove-adjacent-duplicates (lambda (lst) (cond ((null? lst) '()) ((null? (cdr lst)) lst) (else (cons-if-different (car lst) (remove-adjacent-duplicates (cdr lst)))))))