我正在Prolog中编写程序。我重新命令目标停止无限递归。
然而,它仍然存在问题。
查询时...
以下面的谓词
为例| ?- predicate([x,y,z],x).
yes
| ?- predicate(X,x).
X = [x] ?;
X = [x,y] ?;
no
| ?- predicate([x,y,Z],x).
no
为什么谓词会这样做?我无法发布我的代码,但是关于导致此类问题的一些建议会很棒。如果它在使用基础术语时知道查询成立,为什么在使用变量时它不会找到它?它甚至没有卡住递归或任何东西,它只是说没有更多的解决方案,当有!!/ / p>