在序言中,是否可以强制失败?就像是:
check(F,A,[1,2,3]) :- FAIL.
check(F,A,_) : greater_than(F,A).
这可能是一个不好的例子,但与此类似。
因此,如果它在 F,A,[1,2,3] 上进行模式匹配,那么我们只需停止 who 统一过程,并返回 false。
在序言中,是否可以强制失败?就像是:
check(F,A,[1,2,3]) :- FAIL.
check(F,A,_) : greater_than(F,A).
这可能是一个不好的例子,但与此类似。
因此,如果它在 F,A,[1,2,3] 上进行模式匹配,那么我们只需停止 who 统一过程,并返回 false。
Prolog has a built-in fail/0
predicate, which always fails. You need a cut !
in front of it in order to prevent further matching of the same check/3
rule:
check(F,A,[1,2,3]) :- !, fail.