Got rid of similar trampoline for unify tuple recursion.
This commit is contained in:
parent
d594b04d15
commit
98a6ed5873
17
src/mgu.c
17
src/mgu.c
@ -270,14 +270,15 @@ unify (Term t1, Term t2, Termlist tl, int (*callback) (), void *state)
|
|||||||
non-associative version ! TODO other version */
|
non-associative version ! TODO other version */
|
||||||
if (isTermTuple (t1))
|
if (isTermTuple (t1))
|
||||||
{
|
{
|
||||||
int unify_combined_tup (Termlist tl, void *state)
|
struct state_mgu_tmp tmpstate;
|
||||||
{
|
|
||||||
// now the keys are unified (subst in this tl)
|
tmpstate.oldstate = state;
|
||||||
// and we try the inner terms
|
tmpstate.oldcallback = callback;
|
||||||
return unify (TermOp2 (t1), TermOp2 (t2), tl, callback, state);
|
tmpstate.unifyt1 = TermOp2 (t1);
|
||||||
}
|
tmpstate.unifyt2 = TermOp2 (t2);
|
||||||
return unify (TermOp1 (t1), TermOp1 (t2), tl, unify_combined_tup,
|
|
||||||
state);
|
return unify (TermOp1 (t1), TermOp1 (t2), tl, unify_callback_wrapper,
|
||||||
|
&tmpstate);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
Loading…
Reference in New Issue
Block a user