]> git.rkrishnan.org Git - sicp.git/blob - src/sicp/goodies.rkt
Solution to 4.33. This had been difficult to get right, though conceptually it was
[sicp.git] / src / sicp / goodies.rkt
1 #lang racket
2 (provide distinct)
3
4 (define (member? x lst)
5   (cond
6     [(empty? lst) #f]
7     [(equal? (first lst) x) #t]
8     [else (member? x (rest lst))]))
9
10 (define (distinct lst)
11   (cond
12     [(empty? lst) '()]
13     [(member? (first lst) (rest lst)) (distinct (rest lst))]
14     [else (cons (first lst) 
15                 (distinct (rest lst)))]))
16
17