标签: 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,_))。为什么会这样?
c(A,B)
A = 1, B = 3 and A = a, B = 3.
(c(X,_))
答案 0 :(得分:3)
Prolog cut 谓词或'!',消除了选择是Prolog推导树。
请检查其角色here