Prolog通配符

时间:2011-12-15 09:39:17

标签: prolog

我有以下条款:

a(1).
a(a).
b(3).
b(a).
c(A,B) :- b(B),!,a(A).
c(X,_) :- a(X),b(X).

查询c(A,B)仅返回两个解决方案:A = 1, B = 3 and A = a, B = 3. 我跟踪c(A,B)并注意到Prolog甚至没有尝试第二个条款(c(X,_))。为什么会这样?

1 个答案:

答案 0 :(得分:3)

Prolog cut 谓词或'!',消除了选择是Prolog推导树。

请检查其角色here