1
由於Prolog的回溯循環遍歷目標,導致我的多重解決方案問題。雖然我理解,在技術上,提供的每個解決方案都是正確的,但對我無用。有沒有刪除重複的方法?如何防止序言中的重複項
這裏是我到目前爲止的代碼:
flight(london, paris).
flight(paris, amsterdam).
flight(amsterdam, rome).
flight(rome, paris).
flight(rome, rio_de_janeiro).
route_from(A,B) :-
flight(A,B).
route_from(A,B) :-
flight(A,R),
route_from(R,B).
示例查詢是:
?- route_from(A, paris).
A = london ;
A = rome ;
A = london ;
A = london ;
A = london ;
A = london ;
A = london ;
A = london ;
A = london ;
etc.
問候。
謝謝,\ +的目的是什麼? – 2013-04-26 19:36:27
它的否定(如果調用失敗,則成功);在這個例子中它意味着'A'不應該是'Visited'的成員 – gusbro 2013-04-26 19:43:04