对于家庭作业,所以没有明确的,请:
有没有办法让 Prolog 只返回程序找到的第一个目标,而忽略找到的其他目标?
出于说明目的,给定程序:
permutation([X|Xs],Zs):-permutation(Xs,Ys), insert(X,Ys,Zs).
permutation([],[]).
有没有办法让程序只返回第一个排列作为它的唯一解决方案?在以下情况下:
| ?- permutation([1,2,3],X).
X = [1,2,3] ? ;
X = [1,3,2] ? ;
X = [2,1,3] ? ;
X = [2,3,1] ? ;
X = [3,1,2] ? ;
X = [3,2,1] ? ;
no
我们能不能
X = [1,2,3] ?;
no
作为解决方案?