我在 Prolog 中的一个简单程序遇到了一些问题。我有两个不同的组,我想将一个组的一个元素附加到另一个组,而不直接修改事实(例如:多伦多 = 美国)。
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).
我究竟做错了什么?
谢谢小伙伴。