我需要定义一个谓词,这样:
?- X = succ(X), nu(X).
false.
我该怎么做?它似乎什么都不会回报,只是永远运行。
您可以这样尝试:
nu(0).
nu(S) :-
acyclic_term(S),
S = succ(X),
nu(X).
如果在第一个查询中失败,则需要使用circ_term/1调用。