scm: Add c????r.
[mes.git] / module / mes / base-0.mes
index 78a525fd76c1fde41a99ee62e8582961705eb53d..11359fc2dab1255441748bea863df76f5f286329 100644 (file)
 (define (primitive-eval e) (core:eval e (current-module)))
 (define eval core:eval)
 
-(define (caar x) (car (car x)))
-(define (cadr x) (car (cdr x)))
-(define (cdar x) (cdr (car x)))
-(define (cddr x) (cdr (cdr x)))
-
 (define-macro (defined? x)
-  (list 'assq x '(cddr (current-module))))
+  (list 'assq x '(cdr (cdr (current-module)))))
 
 (if (defined? 'current-input-port) #t
     (define (current-input-port) 0))
@@ -58,7 +53,6 @@
   (if (null? (cdr rest)) (car rest)
       (cons (car rest) (core:apply cons* (cdr rest) (current-module)))))
 
-(define (apply f h . t) (apply-env f (cons h t) (current-module)))
 (define (apply f h . t)
   (if (null? t) (core:apply f h (current-module))
       (apply f (apply cons* (cons h t)))))
@@ -70,9 +64,9 @@
                (cons
                 '(test)
                 (list (list 'if 'test
-                            (if (pair? (cdar clauses))
-                                (if (eq? (cadar clauses) '=>)
-                                    (append2 (cddar clauses) '(test))
+                            (if (pair? (cdr (car clauses)))
+                                (if (eq? (car (cdr (car clauses))) '=>)
+                                    (append2 (cdr (cdr (car clauses))) '(test))
                                     (list (cons 'lambda (cons '() (car clauses)))))
                                 (list (cons 'lambda (cons '() (car clauses)))))
                             (if (pair? (cdr clauses))
@@ -81,6 +75,7 @@
 
 (define else #t)
 
+(define (cadr x) (car (cdr x)))
 (define-macro (simple-let bindings . rest)
   (cons (cons 'lambda (cons (map1 car bindings) rest))
         (map1 cadr bindings)))
           (list 'set! '*modules* (list cons (list string->symbol (module->file module)) '*modules*))
           (list 'load (list string-append '*mes-prefix* (module->file module)))))))
 
-(mes-use-module (srfi srfi-0))
 (mes-use-module (mes base))
+(mes-use-module (srfi srfi-0))
 (mes-use-module (mes quasiquote))
 (mes-use-module (mes let))
 (mes-use-module (mes scm))