Author: yamakenz
Date: Fri Aug 31 23:06:33 2007
New Revision: 4930

Modified:
   sigscheme-trunk/lib/srfi-0.scm

Log:
* lib/srfi-0.scm
  - Make SRFI-1 unneeded
  - (%cond-expand-feature?, cond-expand): Replace SRFI-1
    expressions with R5RS ones


Modified: sigscheme-trunk/lib/srfi-0.scm
==============================================================================
--- sigscheme-trunk/lib/srfi-0.scm      (original)
+++ sigscheme-trunk/lib/srfi-0.scm      Fri Aug 31 23:06:33 2007
@@ -31,7 +31,7 @@
 ;;  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 
-(require-extension (srfi 1 23))
+(require-extension (srfi 23))
 
 (define %cond-expand-feature?
   (lambda (feature-exp)
@@ -44,9 +44,11 @@
             (args (cdr feature-exp)))
       (case directive
         ((and)
-         (every %cond-expand-feature? args))
+         ;;(every %cond-expand-feature? args))
+         (not (memq #f (map %cond-expand-feature? args))))
         ((or)
-         (any %cond-expand-feature? args))
+         ;;(any %cond-expand-feature? args))
+         (not (not (memq #t (map %cond-expand-feature? args)))))
         ((not)
          (if (not (null? (cdr args)))
              (error "invalid feature expression"))
@@ -58,8 +60,16 @@
   (lambda clauses
     (if (null? clauses)
         (error "unfulfilled cond-expand")
-        (let ((clause (find (lambda (clause)
-                              (%cond-expand-feature? (car clause)))
-                            clauses)))
+;;        (let ((clause (find (lambda (clause)
+;;                              (%cond-expand-feature? (car clause)))
+;;                            clauses)))
+        (let ((clause (let rec ((rest clauses))
+                          (cond
+                           ((null? rest)
+                            #f)
+                           ((%cond-expand-feature? (caar rest))
+                            (car rest))
+                           (else
+                            (rec (cdr rest)))))))
           (and clause
                (cons 'begin (cdr clause)))))))

Reply via email to