change eval order
[lambda.git] / print.c
diff --git a/print.c b/print.c
index c7503b8..f093ff5 100644 (file)
--- a/print.c
+++ b/print.c
@@ -14,7 +14,6 @@ void term_print(struct lambda *t, struct lambda *mark)
                putchar('|');
        switch(t->which){
        case lambda_ident:
-//             printf("%s(%p)", t->data.identifier.ident, (void *)t->data.identifier.binding);
                printf("%s", t->data.identifier.ident);
                break;
        case lambda_abs:
@@ -28,19 +27,12 @@ void term_print(struct lambda *t, struct lambda *mark)
                term_print(t, mark);
                break;
        case lambda_app:
-               if(t->data.application.expr1->which == lambda_abs)
-                       putchar('(');
+               putchar('(');
                term_print(t->data.application.expr1, mark);
                if(t->data.application.expr1->which == lambda_abs)
-                       putchar(')');
-
-               putchar(' ');
-
-               if(t->data.application.expr2->which == lambda_app)
-                       putchar('(');
+               printf(") (");
                term_print(t->data.application.expr2, mark);
-               if(t->data.application.expr2->which == lambda_app)
-                       putchar(')');
+               putchar(')');
                break;
        }
        if(t == mark)