/[guile]/guile/guile-core/srfi/srfi-1.scm
ViewVC logotype

Diff of /guile/guile-core/srfi/srfi-1.scm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.24 by kryde, Mon May 12 23:02:01 2003 UTC revision 1.25 by kryde, Tue Jul 8 00:10:42 2003 UTC
# Line 795  Line 795 
795              (else              (else
796               (lp (map1 cdr lists) (+ i 1)))))))               (lp (map1 cdr lists) (+ i 1)))))))
797    
 ;;; Deletion  
   
 (define (delete x list . rest)  
   (let ((l= (if (pair? rest) (car rest) equal?)))  
     (let lp ((l list))  
       (if (null? l)  
         '()  
         (if (l= x (car l))  
           (lp (cdr l))  
           (cons (car l) (lp (cdr l))))))))  
   
 (define (delete! x list . rest)  
   (let ((l= (if (pair? rest) (car rest) equal?)))  
     (delete x list l=)))                ; XXX:optimize  
   
 (define (delete-duplicates list . rest)  
   (let ((l= (if (pair? rest) (car rest) equal?)))  
     (let lp0 ((l1 list))  
       (if (null? l1)  
         '()  
         (if (let lp1 ((l2 (cdr l1)))  
               (if (null? l2)  
                 #f  
                 (if (l= (car l1) (car l2))  
                   #t  
                   (lp1 (cdr l2)))))  
           (lp0 (cdr l1))  
           (cons (car l1) (lp0 (cdr l1))))))))  
   
 (define (delete-duplicates list . rest)  
   (let ((l= (if (pair? rest) (car rest) equal?)))  
     (let lp ((list list))  
       (if (null? list)  
         '()  
         (cons (car list) (lp (delete (car list) (cdr list) l=)))))))  
   
 (define (delete-duplicates! list . rest)  
   (let ((l= (if (pair? rest) (car rest) equal?)))  
     (delete-duplicates list l=)))       ; XXX:optimize  
   
798  ;;; Association lists  ;;; Association lists
799    
800  (define (alist-cons key datum alist)  (define (alist-cons key datum alist)

Legend:
Removed from v.1.24  
changed lines
  Added in v.1.25

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26