假设我有这样的目标:
times(0,_,0). % zero times X is zero
times(X,Y,Z) :- times(Y,X,Z) ,!. % X * Y = Y * X
当我试图问:
?- times(0,1,X).
我得到了双重答案:
X = 0 ;
X = 0.
可能是因为第一个答案是从 推导出来的fact
,第二个答案是从 推导出来的rule
。
问题 - 如何让序言只给出一个答案而不是两个?