Для домашней работы, так что ничего явного, пожалуйста:
Есть ли способ заставить Prolog вернуть только цель first , найденную программой, игнорируя другие найденные цели?
В иллюстративных целях приведена программа:
permutation([X|Xs],Zs):-permutation(Xs,Ys), insert(X,Ys,Zs).
permutation([],[]).
Можно ли заставить программу только возвращать перестановку first в качестве единственного решения?В следующем случае:
| ?- 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
в качестве решения?