summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--eval.c4
-rw-r--r--example.pl2
2 files changed, 6 insertions, 0 deletions
diff --git a/eval.c b/eval.c
index 854d69c..c755cf5 100644
--- a/eval.c
+++ b/eval.c
@@ -169,6 +169,10 @@ unify(Term *a, Term *b, Binding **bindings)
left = right;
right = tmp;
}
+
+ if(runestrcmp(left->text, L"_") == 0)
+ continue; /* _ doesn't introduce a new binding */
+
Binding *b = malloc(sizeof(Binding));
b->name = left->text;
b->nr = left->clausenr;
diff --git a/example.pl b/example.pl
index 64f08ab..74387b1 100644
--- a/example.pl
+++ b/example.pl
@@ -32,3 +32,5 @@ length([Head|Tail], suc(Length)) :-
:- initialization(could_be_friends(bob, sam)).
:- initialization(length([a,b,c,d], Len)).
+
+:- initialization(length(_,_)). \ No newline at end of file