Hello I am sorry if this is a trivial issue, that is explained somewhere. If so, please point me in that direction. Nevertheless, when doing some experiments with SWI Prolog and GNU Prolog, I found out some different behavior on some simple things:
This is my SWI Prolog run: ?- [user]. |: f(a,b). |: f(c,d). |: f(a,d). |: % user://1 compiled 0.00 sec, 5 clauses true. ?- f(X,b). X = a. ?- f(a,X). X = b ; X = d. ?- f(X,d). X = c ; X = a. In fact, SWI Prolog never says true/false/yes/no. It just show the possible results. In GNU Prolog I get this: | ?- [user]. compiling user for byte code... f(a,b). f(c,d). f(a,d). user compiled, 4 lines read - 331 bytes written, 9192 ms yes | ?- f(X,b). X = a ? ; no | ?- f(a,X). X = b ? ; X = d yes | ?- f(X,d). X = c ? ; X = a (1 ms) yes Although I can understand the 'yes' answer, I can't get why in the first iteration GNU Prolog stopped and gave me the chance to ask for more solutions (while in the next two it didn't). And, why did it say "no" (ok, it said no because it didn't find any other solution, but then, why did it try to get more solutions in that case?) Thank you Kindest regards, Alberto -- Alberto Simões _______________________________________________ Users-prolog mailing list [email protected] https://lists.gnu.org/mailman/listinfo/users-prolog
