Open triska opened 1 year ago
Trying to construct a simpler case that exhibits #1526, I came up with:
:- use_module(library(tabling)). :- table p/1. :- table g/1. g(a). p(Ls) :- setof(X, g(X), Ls).
Storing these definitions in tabling_problem.pl, I get:
tabling_problem.pl
$ scryer-prolog tabling_problem.pl ?- p(X). false. ?- g(X). X = a ; false.
On the other hand, invoking g/1 before p/1, I get:
g/1
p/1
$ scryer-prolog tabling_problem.pl ?- g(X). X = a ; false. ?- p(X). X = "a" ; false.
I have shortened the example, please see the updated post.
Trying to construct a simpler case that exhibits #1526, I came up with:
Storing these definitions in
tabling_problem.pl
, I get:On the other hand, invoking
g/1
beforep/1
, I get: