t1 = t->data.application.expr1;
t2 = t->data.application.expr2;
lambda_reduce(t1, total, maxdepth);
+ //For applicative order
+ lambda_reduce(t2, total, maxdepth);
if(t1->which == lambda_abs){
lambda_print(total, t);
printf("β -> ");
(*maxdepth)--;
lambda_reduce(t, total, maxdepth);
}
+ //For applicative order
+ } else if(t->which == lambda_abs) {
+ lambda_reduce(t->data.abstraction.expr, total, maxdepth);
}
}