diff options
author | James LewisMoss <dres@debian.org> | 1999-12-06 19:32:57 -0500 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:05:28 -0800 |
commit | c394920caedf3dac1981bb6b10eeb47fd6e4bb21 (patch) | |
tree | f21194653a3554f747dde3df908df993c48db5a0 /comlist.scm | |
parent | 926b1b647ac830660933a5e63eb52d4a2552e264 (diff) | |
parent | bd9733926076885e3417b74de76e4c9c7bc56254 (diff) | |
download | slib-debian/2c7-1.tar.gz slib-debian/2c7-1.zip |
Import Debian changes 2c7-1debian/2c7-1
slib (2c7-1) unstable; urgency=low
* New upstream.
* Add slibconfig back in.
slib (2c6-2) unstable; urgency=low
* Remove the slib$(VERSION).info file. Cut the diff back down to
size.
slib (2c6-1) unstable; urgency=low
* New upstream.
* Move docs to /usr/share. Up standards version. add /usr/doc symlink.
Move info files. Remove undocumented link.
slib (2c5-6) unstable; urgency=low
* Lowercase two vars in yasyn.scm (Fixes bug #37222)
slib (2c5-5) unstable; urgency=low
* Fix it so string-index isn't defined (now there is a
strsrch:string-index) (Fixes #38812)
slib (2c5-4) unstable; urgency=low
* Don't run slibconfig in postinst. (Fixes bug #38253, #37733, #37715,
#37746, #37809, #37917, #38123, #38462)
slib (2c5-3) unstable; urgency=low
* Run slibconfig in postinst. It was commented out there, but I don't
see any old bug reports on why it was commented out, so let's try
again. :) (Fixes bug #37221)
slib (2c5-2) unstable; urgency=low
* Link mklibcat.scm to mklibcat. Fixes a problem with using slib with
guile.
slib (2c5-1) unstable; urgency=low
* New upstream.
slib (2c3-4) unstable; urgency=low
* New maintainer.
Diffstat (limited to 'comlist.scm')
-rw-r--r-- | comlist.scm | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/comlist.scm b/comlist.scm index 1751c7f..8ecf525 100644 --- a/comlist.scm +++ b/comlist.scm @@ -31,7 +31,7 @@ (define (comlist:copy-list lst) (append lst '())) -(define (comlist:adjoin e l) (if (memq e l) l (cons e l))) +(define (comlist:adjoin e l) (if (memv e l) l (cons e l))) (define (comlist:union l1 l2) (cond ((null? l1) l2) @@ -176,13 +176,22 @@ ((car args) #t) (else (apply comlist:or? (cdr args))))) -; Checks to see if a list has any duplicates. +;;; Checks to see if a list has any duplicate MEMBERs. (define (comlist:has-duplicates? lst) (cond ((null? lst) #f) ((member (car lst) (cdr lst)) #t) (else (comlist:has-duplicates? (cdr lst))))) -(define (comlist:list* x . y) +;;; remove duplicates of MEMBERs of a list +(define (comlist:remove-duplicates lst) + (letrec ((rem-dup + (lambda (lst nlst) + (cond ((null? lst) nlst) + ((member (car lst) nlst) (rem-dup (cdr lst) nlst)) + (else (rem-dup (cdr lst) (cons (car lst) nlst))))))) + (rem-dup lst '()))) + +(define (comlist:list* x . y) (define (list*1 x) (if (null? (cdr x)) (car x) @@ -283,7 +292,7 @@ ((equal? obj (car list)) (delete (cdr list))) (else (set-cdr! list (delete (cdr list))) - list)))) + list)))) (define (comlist:delete-if pred list) (let delete-if ((list list)) @@ -291,7 +300,7 @@ ((pred (car list)) (delete-if (cdr list))) (else (set-cdr! list (delete-if (cdr list))) - list)))) + list)))) (define (comlist:delete-if-not pred list) (let delete-if ((list list)) @@ -299,7 +308,7 @@ ((not (pred (car list))) (delete-if (cdr list))) (else (set-cdr! list (delete-if (cdr list))) - list)))) + list)))) ;;; exports @@ -330,6 +339,7 @@ (define and? comlist:and?) (define or? comlist:or?) (define has-duplicates? comlist:has-duplicates?) +(define remove-duplicates comlist:remove-duplicates) (define delete-if-not comlist:delete-if-not) (define delete-if comlist:delete-if) |