【发布时间】:2018-02-22 18:53:17
【问题描述】:
我在 Prolog 中有这个列表和一个谓词 check_lower(N1, N2),它确定哪些数字 N1 小于 N2。现在,由于列表的顺序如下所示,我使谓词遍历列表,直到遇到相同的数字。一旦遇到相同的数字,它就会终止。
我现在遇到的问题是它在找到相同的数字后回溯并显示列表的其余部分。有没有办法在失败后终止。
numbers([one,two, three, four, five]).
number(X) :- numbers(N), member(X, N).
check_lower(N1,N2) :- number(N1), N1\=N2.
这是我的查询:?- check_lower(N, three).
我已经跟踪我的程序无济于事,感谢任何建议,谢谢。 另外,对不起,如果这篇文章是集群的,这是我第一次在这里发帖。
【问题讨论】:
-
number/1是一个内置谓词。你不能自己定义。 -
我没听懂,谢谢。
标签: prolog