Merge branch 'master' of git.martlubbers.net:lambda
authorMart Lubbers <mart@martlubbers.net>
Thu, 17 May 2018 06:48:55 +0000 (08:48 +0200)
committerMart Lubbers <mart@martlubbers.net>
Thu, 17 May 2018 06:48:55 +0000 (08:48 +0200)
1  2 
reduce.c

diff --cc reduce.c
+++ b/reduce.c
@@@ -53,20 -19,14 +53,19 @@@ void lambda_beta(struct lambda *ident, 
                }
                break;
        case lambda_abs:
 -              if(strcmp(t1->data.abstraction.ident, ident) != 0)
 -                      subst(ident, t1->data.abstraction.expr, t2, total);
 +              if(lambda_ident_eq(t1, ident) == 0){
 +                      lambda_alpha(t1->data.abstraction.expr, t1);
 +                      t1->data.abstraction.revision++;
 +                      printf("α -> ");
 +                      lambda_print(total);
 +              }
 +              lambda_beta(ident, t1->data.abstraction.expr, t2, total);
                break;
        case lambda_app:
 -              subst(ident, t1->data.application.expr1, t2, total);
 -              subst(ident, t1->data.application.expr2, t2, total);
 +              lambda_beta(ident, t1->data.application.expr1, t2, total);
 +              lambda_beta(ident, t1->data.application.expr2, t2, total);
                break;
        }
  }
  
  void lambda_reduce(struct lambda *t, struct lambda *total, int *maxdepth)