From: Mart Lubbers Date: Thu, 17 May 2018 06:48:55 +0000 (+0200) Subject: Merge branch 'master' of git.martlubbers.net:lambda X-Git-Url: https://git.martlubbers.net/?a=commitdiff_plain;h=f082c0806b2ae9597f992056393bf82f545f5570;p=lambda.git Merge branch 'master' of git.martlubbers.net:lambda --- f082c0806b2ae9597f992056393bf82f545f5570 diff --cc reduce.c index 2cef239,0c7d98c..1cad7a9 --- a/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)