original commit: 69d1adfe72f291f112ea6e3ad56daa4cb249adf7
This commit is contained in:
Matthew Flatt 2003-04-17 17:08:03 +00:00
parent 6f06fdc407
commit 3fa447bf48

View File

@ -120,13 +120,18 @@
(lambda (item list)
(remove item list eqv?))))
(define remove*
(define remove*
(polymorphic
(case-lambda
[(l r equal?)
(if (null? l)
r
(remove* (cdr l) (remove (car l) r equal?) equal?))]
(cond
[(null? r) null]
[else (let ([first-r (car r)])
(let loop ([l-rest l])
(cond
[(null? l-rest) (cons first-r (remove* l (cdr r) equal?))]
[(equal? (car l-rest) first-r) (remove* l (cdr r) equal?)]
[else (loop (cdr l-rest))])))])]
[(l r) (remove* l r equal?)])))
(define remq*