私がそのような目標を持っているとしましょう:
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
2番目の答えはから推測されるためrule
です。
質問-2つではなく1つの答えだけを与えるようにプロローグを作成する方法は?