guile-commits
[Top][All Lists]
Advanced

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

[Guile-commits] 03/25: GOOPS utils module cleanups


From: Andy Wingo
Subject: [Guile-commits] 03/25: GOOPS utils module cleanups
Date: Mon, 19 Jan 2015 10:41:04 +0000

wingo pushed a commit to branch wip-goops-refactor
in repository guile.

commit ed248f5fbbd434c55f30abbed32ecb5724b91bc9
Author: Andy Wingo <address@hidden>
Date:   Mon Jan 12 21:40:29 2015 +0100

    GOOPS utils module cleanups
    
    * module/oop/goops.scm (make-class): Inline find-duplicate to its use
      site.
    
    * module/oop/goops/util.scm (improper->proper): Remove unused function.
      (any, every): Don't re-export these from SRFI-1; users can get them
      from SRFI-1 directly.
---
 module/oop/goops.scm      |    8 ++++++++
 module/oop/goops/util.scm |   19 +------------------
 2 files changed, 9 insertions(+), 18 deletions(-)

diff --git a/module/oop/goops.scm b/module/oop/goops.scm
index afbc31c..6c509f9 100644
--- a/module/oop/goops.scm
+++ b/module/oop/goops.scm
@@ -1181,6 +1181,14 @@ followed by its associated value.  If @var{l} does not 
hold a value for
 ;;;
 
 (define (make-class supers slots . options)
+  (define (find-duplicate l)
+    (match l
+      (() #f)
+      ((head . tail)
+       (if (memq head tail)
+           head
+           (find-duplicate tail)))))
+
   (let* ((name (get-keyword #:name options (make-unbound)))
          (supers (if (not (or-map (lambda (class)
                                     (memq <object>
diff --git a/module/oop/goops/util.scm b/module/oop/goops/util.scm
index fa48645..8b48f98 100644
--- a/module/oop/goops/util.scm
+++ b/module/oop/goops/util.scm
@@ -17,24 +17,12 @@
 
 
 (define-module (oop goops util)
-  :export (find-duplicate
-          map* for-each* length* improper->proper)
-  :use-module (srfi srfi-1)
-  :re-export  (any every)
-  :no-backtrace
-  )
-
+  #:export (map* for-each* length*))
 
 ;;;
 ;;; {Utilities}
 ;;;
 
-(define (find-duplicate l)     ; find a duplicate in a list; #f otherwise
-  (cond 
-    ((null? l)                 #f)
-    ((memv (car l) (cdr l))    (car l))
-    (else                      (find-duplicate (cdr l)))))
-
 (define (map* fn . l)          ; A map which accepts dotted lists (arg lists  
   (cond                        ; must be "isomorph"
    ((null? (car l)) '())
@@ -52,8 +40,3 @@
   (do ((n 0 (+ 1 n))
        (ls ls (cdr ls)))
       ((not (pair? ls)) n)))
-
-(define (improper->proper ls)
-  (if (pair? ls)
-      (cons (car ls) (improper->proper (cdr ls)))
-      (list ls)))



reply via email to

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