Replace custom adjoin with cons
Duplicates in the seen list don't matter
This commit is contained in:
parent
8cbd5f4788
commit
275fb36bd7
14
3_16.rkt
14
3_16.rkt
|
@ -15,22 +15,16 @@
|
|||
1)))
|
||||
|
||||
(define (count-unique-pairs l)
|
||||
(define (adjoin p pairs)
|
||||
(cond ((null? pairs) (list p))
|
||||
((not (pair? p)) pairs)
|
||||
((eq? p (car pairs)) pairs)
|
||||
(else (cons (car pairs)
|
||||
(adjoin p (cdr pairs))))))
|
||||
(trace-define (count l seen-pairs)
|
||||
(cond ((not (pair? l)) 0)
|
||||
((memq l seen-pairs) 0)
|
||||
(else
|
||||
(+ (count (car l)
|
||||
(adjoin l seen-pairs))
|
||||
(cons l seen-pairs))
|
||||
(count (cdr l)
|
||||
(adjoin l
|
||||
(adjoin (car l)
|
||||
seen-pairs)))
|
||||
(cons l
|
||||
(cons (car l)
|
||||
seen-pairs)))
|
||||
1))))
|
||||
(count l '()))
|
||||
|
||||
|
|
Loading…
Reference in New Issue