[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 33/61: GOOPS utils module cleanups
From: |
Andy Wingo |
Subject: |
[Guile-commits] 33/61: GOOPS utils module cleanups |
Date: |
Thu, 22 Jan 2015 18:53:10 +0000 |
wingo pushed a commit to branch wip-goops-refactor
in repository guile.
commit 3701c0019339da7fdf1178166e3c05e8a27024c0
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 543acff..64c3d11 100644
--- a/module/oop/goops.scm
+++ b/module/oop/goops.scm
@@ -1183,6 +1183,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)))
- [Guile-commits] 22/61: Rewrite %initialize-object in Scheme, (continued)
- [Guile-commits] 22/61: Rewrite %initialize-object in Scheme, Andy Wingo, 2015/01/22
- [Guile-commits] 31/61: GOOPS cleanup to use SRFI-1 better, Andy Wingo, 2015/01/22
- [Guile-commits] 29/61: Incorporate %inherit-magic! into %init-layout!, Andy Wingo, 2015/01/22
- [Guile-commits] 32/61: append-map rather than mapappend, Andy Wingo, 2015/01/22
- [Guile-commits] 24/61: Move <class> initialization to Scheme, Andy Wingo, 2015/01/22
- [Guile-commits] 30/61: Cosmetic goops refactors., Andy Wingo, 2015/01/22
- [Guile-commits] 35/61: Add compute-cpl tests, Andy Wingo, 2015/01/22
- [Guile-commits] 26/61: Reimplement %allocate-instance in Scheme, Andy Wingo, 2015/01/22
- [Guile-commits] 28/61: goops.c no longer knows about <class> slot allocation, Andy Wingo, 2015/01/22
- [Guile-commits] 34/61: Fold (oop goops util) into (oop goops), Andy Wingo, 2015/01/22
- [Guile-commits] 33/61: GOOPS utils module cleanups,
Andy Wingo <=
- [Guile-commits] 27/61: Reimplement inherit-applicable! in Scheme, Andy Wingo, 2015/01/22
- [Guile-commits] 12/61: goops: use computed class slot offsets; untabify and fix whitepace, Andy Wingo, 2015/01/22
- [Guile-commits] 37/61: Narrative reordering in goops.scm, Andy Wingo, 2015/01/22
- [Guile-commits] 36/61: scm_make cleanup, Andy Wingo, 2015/01/22
- [Guile-commits] 39/61: More GOOPS comments, Andy Wingo, 2015/01/22
- [Guile-commits] 42/61: Convert emit-linear-dispatch to use match, Andy Wingo, 2015/01/22
- [Guile-commits] 38/61: Commenting in goops.scm, Andy Wingo, 2015/01/22
- [Guile-commits] 43/61: `match' refactor in goops.scm, Andy Wingo, 2015/01/22
- [Guile-commits] 40/61: when and unless for one-armed ifs in goops.scm, Andy Wingo, 2015/01/22
- [Guile-commits] 44/61: GOOPS class slot indices defined as inline values, Andy Wingo, 2015/01/22