guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] `any' and `every' in `(oop goops util)'


From: Ludovic Courtès
Subject: [PATCH] `any' and `every' in `(oop goops util)'
Date: Thu, 20 Oct 2005 11:16:37 +0200
User-agent: Gnus/5.110004 (No Gnus v0.4) Emacs/21.4 (gnu/linux)

Hi,

The `(oop goops util)' module currently exports its own version of `any' and
`every', which is unnecessary and causes warnings to be issued when
`(srfi srfi-1)' is being used.  The patch below fixes this.

Thanks,
Ludovic.


2005-10-20  Ludovic Courtès  <address@hidden>

        * oop/goops/util.scm: Don't export custom versions of `any' and
          `every'; re-export those of `(srfi srfi-1)' instead.


--- orig/oop/goops/util.scm
+++ mod/oop/goops/util.scm
@@ -17,9 +17,9 @@
 
 
 (define-module (oop goops util)
-  :export (any every
-          mapappend find-duplicate top-level-env top-level-env?
+  :export (mapappend find-duplicate top-level-env top-level-env?
           map* for-each* length* improper->proper)
+  :use-module (srfi srfi-1)
   :no-backtrace
   )
 
@@ -28,37 +28,7 @@
 ;;; {Utilities}
 ;;;
 
-(define (any pred lst . rest)
-  (if (null? rest) ;fast path
-      (and (not (null? lst))
-           (let loop ((head (car lst)) (tail (cdr lst)))
-             (if (null? tail)
-                 (pred head)
-                 (or (pred head)
-                     (loop (car tail) (cdr tail))))))
-      (let ((lsts (cons lst rest)))
-        (and (not (any null? lsts))
-             (let loop ((heads (map car lsts)) (tails (map cdr lsts)))
-               (if (any null? tails)
-                   (apply pred heads)
-                   (or (apply pred heads)
-                       (loop (map car tails) (map cdr tails)))))))))
-
-(define (every pred lst . rest)
-  (if (null? rest) ;fast path
-      (or (null? lst)
-          (let loop ((head (car lst)) (tail (cdr lst)))
-            (if (null? tail)
-                (pred head)
-                (and (pred head)
-                     (loop (car tail) (cdr tail))))))
-      (let ((lsts (cons lst rest)))
-        (or (any null? lsts)
-            (let loop ((heads (map car lsts)) (tails (map cdr lsts)))
-              (if (any null? tails)
-                  (apply pred heads)
-                  (and (apply pred heads)
-                       (loop (map car tails) (map cdr tails)))))))))
+(re-export any every)
 
 (define (mapappend func . args)
   (if (memv '()  args)
@@ -67,7 +37,7 @@
              (apply mapappend func (map cdr args)))))
 
 (define (find-duplicate l)     ; find a duplicate in a list; #f otherwise
-  (cond 
+  (cond
     ((null? l)                 #f)
     ((memv (car l) (cdr l))    (car l))
     (else                      (find-duplicate (cdr l)))))





reply via email to

[Prev in Thread] Current Thread [Next in Thread]