core: Remove c3+r abbreviatons.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sat, 24 Dec 2016 13:21:36 +0000 (14:21 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sat, 24 Dec 2016 13:21:36 +0000 (14:21 +0100)
* lib.c (caaar, caadr, caddr, cdadr, cadar, cddar, cdddr, cadddr):
  Remove.
* mes.c: Rewrite callers
* module/mes/read-0.mes: Rewrite callers.
* module/mes/base.mes (caaar, caadr, caddr, cdadr, cadar, cddar, cdddr,
  cadddr): New function.

lib.c
mes.c
module/mes/base.mes
module/mes/read-0.mes

diff --git a/lib.c b/lib.c
index 5ed69a6f4d5ca8d6f0bc668d9c43fa9dedaa7e9f..da55daf637a04110176590ecf0b7450242b1e3fc 100644 (file)
--- a/lib.c
+++ b/lib.c
@@ -22,14 +22,6 @@ SCM caar (SCM x) {return car (car (x));}
 SCM cadr (SCM x) {return car (cdr (x));}
 SCM cdar (SCM x) {return cdr (car (x));}
 SCM cddr (SCM x) {return cdr (cdr (x));}
-SCM caaar (SCM x) {return car (car (car (x)));}
-SCM caadr (SCM x) {return car (car (cdr (x)));}
-SCM caddr (SCM x) {return car (cdr (cdr (x)));}
-SCM cdadr (SCM x) {return cdr (car (cdr (x)));}
-SCM cadar (SCM x) {return car (cdr (car (x)));}
-SCM cddar (SCM x) {return cdr (cdr (car (x)));}
-SCM cdddr (SCM x) {return cdr (cdr (cdr (x)));}
-SCM cadddr (SCM x) {return car (cdr (cdr (cdr (x))));}
 
 SCM
 length (SCM x)
diff --git a/mes.c b/mes.c
index 6c692c23df76fd697cfa4144a1c60fe4095e2ad5..4f8596a820df6e2c10844d31cf3380d2e76b529a 100644 (file)
--- a/mes.c
+++ b/mes.c
@@ -438,7 +438,7 @@ eval_apply ()
             return make_closure (cadr (r1), cddr (r1), assq (cell_closure, r0));
           case cell_symbol_if: {r1=cdr (r1); goto label_if;}
           case cell_symbol_set_x: {
-            SCM x = eval_env (caddr (r1), r0); return set_env_x (cadr (r1), x, r0);
+            SCM x = eval_env (car (cddr (r1)), r0); return set_env_x (cadr (r1), x, r0);
           }
           default: {
             SCM x = macro_expand_env (r1, r0);
@@ -522,7 +522,7 @@ eval_apply ()
     }
   if (cddr (r1) != cell_nil)
     {
-      r1 = caddr (r1);
+      r1 = car (cddr (r1));
       goto eval;
     }
   return cell_unspecified;
@@ -551,7 +551,7 @@ call (SCM fn, SCM x)
     case 0: return FUNCTION (fn).function0 ();
     case 1: return FUNCTION (fn).function1 (car (x));
     case 2: return FUNCTION (fn).function2 (car (x), cadr (x));
-    case 3: return FUNCTION (fn).function3 (car (x), cadr (x), caddr (x));
+    case 3: return FUNCTION (fn).function3 (car (x), cadr (x), car (cddr (x)));
     case -1: return FUNCTION (fn).functionn (x);
     }
 
@@ -564,8 +564,8 @@ gc_frame (SCM stack)
   SCM frame = car (stack);
   r1 = car (frame);
   r2 = cadr (frame);
-  r3 = caddr (frame);
-  r0 = cadddr (frame);
+  r3 = car (cddr (frame));
+  r0 = cadr (cddr (frame));
   return frame;
 }
 
index e57ca4538c1c75ea4fd3b3bf572831ee51a80237..83994495e162e354c171c1b77d670662c6d16944 100644 (file)
 
 ;;; Code:
 
+(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 (caaar x) (car (car (car x))))
+(define (caadr x) (car (car (cdr x))))
+(define (caddr x) (car (cdr (cdr x))))
+(define (cdadr x) (cdr (car (cdr x))))
+(define (cadar x) (car (cdr (car x))))
+(define (cddar x) (cdr (cdr (car x))))
+(define (cdddr x) (cdr (cdr (cdr x))))
+(define (cadddr x) (car (cdr (cdr (cdr x)))))
+
 (define (identity x) x)
 
 (define-macro (or . x)
index 535b34aeffebbdefe4c44905555eb7a9098b67ca..012a01bb7008f9b9292228402cfc938772a75bdd 100644 (file)
@@ -60,8 +60,8 @@
 
   (set! sexp:define
         (lambda (e a)
-          (if (atom? (cadr e)) (cons (cadr e) (eval-env (caddr e) a))
-              (cons (caadr e) (eval-env (cons (quote lambda) (cons (cdadr e) (cddr e))) a)))))
+          (if (atom? (cadr e)) (cons (cadr e) (eval-env (car (cddr e)) a))
+              (cons (car (cadr e)) (eval-env (cons (quote lambda) (cons (cdr (cadr e)) (cddr e))) a)))))
 
   (set! env:macro
         (lambda (name+entry)
     (list (quote if) (pair? clauses)
           (list (quote if) (car (car clauses))
                 (if (pair? (cdar clauses))
-                    (if (eq? (cadar clauses) (quote =>))
-                        (append2 (cddar clauses) (list (caar clauses)))
+                    (if (eq? (car (cdar clauses)) (quote =>))
+                        (append2 (cdr (cdar clauses)) (list (caar clauses)))
                         (list (cons (quote lambda) (cons (list) (car clauses)))))
                     (list (cons (quote lambda) (cons (list) (car clauses)))))
                 (if (pair? (cdr clauses))