diff --git a/include/mes/macros.h b/include/mes/macros.h index 78293377..b1a68c4a 100644 --- a/include/mes/macros.h +++ b/include/mes/macros.h @@ -132,5 +132,6 @@ #define CDDR(x) CDR (CDR (x)) #define CADAR(x) CAR (CDR (CAR (x))) #define CADDR(x) CAR (CDR (CDR (x))) +#define CDDAR(x) CDR (CDR (CAR (x))) #endif //__MES_MACROS_H diff --git a/src/eval-apply.c b/src/eval-apply.c index c17ef315..f8737923 100644 --- a/src/eval-apply.c +++ b/src/eval-apply.c @@ -542,9 +542,9 @@ apply: { if (CAAR (R1) == cell_symbol_lambda) { - formals = CADR (CAR (R1)); + formals = CADAR (R1); args = CDR (R1); - body = CDDR (CAR (R1)); + body = CDDAR (R1); p = pairlis (formals, CDR (R1), R0); check_formals (R1, formals, args); call_lambda (body, p, p, R0);