请看这段代码被剪断:
...,
findall(X, predicate(Input1, X), XS),
XS \== [],
!,
member(X, XS),
...
这将找到 in 的所有解决方案predicate(_, X)
,XS
cut,然后在 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