diff options
author | Peter Mikkelsen <peter@pmikkelsen.com> | 2021-06-30 02:01:46 +0000 |
---|---|---|
committer | Peter Mikkelsen <peter@pmikkelsen.com> | 2021-06-30 02:01:46 +0000 |
commit | 67e8b85a9f9b42acc896b44eb2ea1310e749f03a (patch) | |
tree | 90a6ba153a3d8b80f8ec8a9feff338ca9d1ff11e | |
parent | 2c3e688c3f779f0abfaad887f13ab2b70c9f814a (diff) |
Treat the variable _ differently, in that it doesn't introduce a new binding
-rw-r--r-- | eval.c | 4 | ||||
-rw-r--r-- | example.pl | 2 |
2 files changed, 6 insertions, 0 deletions
@@ -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; @@ -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 |