请看到下面的代码片段:
...,
findall(X, predicate(Input1, X), XS),
XS \== [],
!,
member(X, XS),
...它将在predicate(_, X)中找到XS的所有解决方案,然后在XS中的X上进行“迭代”。
这里有可能取代findall/3吗?很可能我不会对X的所有解决方案感兴趣,我需要知道它对于Input1是否可以满足,如果是的话,继续它的解决方案。
请注意,这当然不是我想要的:
predicate(Input1, X), % Uses other values for Input1这也不是:
!, predicate(Input1, X), % I could need another value for Input1(尤指)不是这样的:
predicate(Input1, X), !, % I want further solutions for X发布于 2013-04-26 16:44:13
这个怎么样:
predicate(Input1,X), !, (Y=X ; predicate(Input1,Y), Y \= X).我认为这是非常相似的(并不是说,完全相同)软切割,predicate(Input1,X) *-> ...。它也是 from the "Reasoned Schemer" book。我认为。
实际上,这和你想要的不完全一样。我认为更接近以下几点:
predicate(Input1,_), !, predicate(Input1,X).https://stackoverflow.com/questions/16240456
复制相似问题