/[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.26 by kryde, Sun Jul 13 23:05:31 2003 UTC revision 1.27 by kryde, Mon Jul 28 23:43:51 2003 UTC
# Line 427  Line 427 
427                #f                #f
428                (lp (cdr hare) (cdr tortoise) (+ l 2)))))))))                (lp (cdr hare) (cdr tortoise) (+ l 2)))))))))
429    
 (define (concatenate l-o-l)  
   (let lp ((l l-o-l) (acc '()))  
     (if (null? l)  
       (reverse! acc)  
       (let lp0 ((ll (car l)) (acc acc))  
         (if (null? ll)  
           (lp (cdr l) acc)  
           (lp0 (cdr ll) (cons (car ll) acc)))))))  
   
 (define (concatenate! l-o-l)  
   (let lp0 ((l-o-l l-o-l))  
     (cond  
       ((null? l-o-l)  
        '())  
       ((null? (car l-o-l))  
        (lp0 (cdr l-o-l)))  
       (else  
        (let ((result (car l-o-l)) (tail (last-pair (car l-o-l))))  
          (let lp ((l (cdr l-o-l)) (ntail tail))  
            (if (null? l)  
              result  
              (begin  
                (set-cdr! ntail (car l))  
                (lp (cdr l) (last-pair ntail))))))))))  
   
   
430  (define (append-reverse rev-head tail)  (define (append-reverse rev-head tail)
431    (let lp ((l rev-head) (acc tail))    (let lp ((l rev-head) (acc tail))
432      (if (null? l)      (if (null? l)

Legend:
Removed from v.1.26  
changed lines
  Added in v.1.27

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