我在Prolog中遇到了一些簡單程序的問題。我有兩個不同的羣體,我想將一個羣組的元素附加到另一個羣組,而不直接修改事實(例如:Toronto = USA)。Prolog中不同變量的MIX值
country(usa, northamerica).
country(canada, northamerica).
city(chicago, usa).
city(newyork, usa).
city(losangeles, usa).
city(dallas, usa).
city(miami, usa).
city(lasvegas, usa).
city(seattle, usa).
city(toronto, canada).
city(vancouver, canada).
city(ottawa, canada).
city(richmond, canada).
city(winnipeg, canada).
city(edmundston, canada).
city(hamilton, canada).
trip(john, usa).
trip(jack, canada).
在這個例子中,約翰前往美國七個城市,而傑克前往其他七個城市在加拿大。
但是,約翰最近前往多倫多。我想達到以下結果:
? - trip_plus(X, john).
X = chicago;
X = newyork;
X = losangeles;
X = dallas;
X = miami;
X = lasvegas;
X = seattle;
X = toronto;
?- yes
我試了很多次都沒有成功得到上面的結果。我可以得到最接近的是使用以下內容:
country(C).
city(Y).
trip(T).
trip_plus(X, T) :- city(Y, C), trip(T, C).
我在做什麼錯了?
謝謝配偶。
什麼是謂詞trip/1?它在你當前的代碼中沒有提到。 –
在mey問題上有一個小的錯字,* trip_plus(X,john),固定。然而。這不是問題,多倫多仍然不包括在內。 :( 謝謝。 –