如何定义此谓词,使其不会永远运行



我需要定义一个谓词,这样:

?- X = succ(X), nu(X).
false.

我该怎么做?它似乎什么都不会回报,只是永远运行。

您可以这样尝试:

nu(0).
nu(S) :-
acyclic_term(S),
S = succ(X),
nu(X).

如果在第一个查询中失败,则需要使用circ_term/1调用。

最新更新