我已经为这个问题苦苦挣扎了两天多了。我的 Prolog 代码就这么简单:
father(abraham,isaac).
mother(sarah,isaac).
parent(X, Y):- father(X, Y).
parent(X, Y):- mother(X, Y).
当我尝试运行问题时?-
parent(X, isaac).
结果是:
X = abraham .
而不是:
X = abraham .
X = sarah .
我在 Windows 11 中使用 SWI-Prolog 版本 9.0.4(稳定)。我已尝试多次卸载/重新安装 SWI-Prolog,并且还在 macOS 上尝试了我的代码,得到了相同的结果。关于我的代码有什么问题有什么想法吗?
适用于我的机器。如果您使用 Prolog 控制台,找到第一个解决方案后,您需要输入
;
回溯并搜索下一个解决方案,重复输入 ;
搜索更多解决方案,直到不再有解决方案找到解决方案,但搜索失败,终止查询的执行。
在 SWI Prolog 的 Swish 中尝试一下,您需要单击
Next
按钮: