Prolog:为什么谓词会返回" yes"用基础术语查询时,但是" no"何时使用变量?

时间:2015-10-16 18:15:38

标签: prolog

我正在Prolog中编写程序。我重新命令目标停止无限递归。

然而,它仍然存在问题。

查询时...

以下面的谓词

为例
| ?- predicate([x,y,z],x).
yes
| ?- predicate(X,x).
X = [x] ?;
X = [x,y] ?;
no
| ?- predicate([x,y,Z],x).
no

为什么谓词会这样做?我无法发布我的代码,但是关于导致此类问题的一些建议会很棒。如果它在使用基础术语时知道查询成立,为什么在使用变量时它不会找到它?它甚至没有卡住递归或任何东西,它只是说没有更多的解决方案,当有!!/ / p>

0 个答案:

没有答案