ark*_*ate 1 syntax prolog prolog-dif
对于家庭作业,所以没有明确的,请:
有没有办法让Prolog只返回程序找到的第一个目标而忽略了找到的其他目标?
为说明目的,给定程序:
permutation([X|Xs],Zs):-permutation(Xs,Ys), insert(X,Ys,Zs).
permutation([],[]).
Run Code Online (Sandbox Code Playgroud)
有没有办法让程序只返回第一个排列作为唯一的解决方案?在以下情况中:
| ?- 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
Run Code Online (Sandbox Code Playgroud)
我们可以吗?
X = [1,2,3] ?;
no
Run Code Online (Sandbox Code Playgroud)
作为解决方案?