Prolog の単純なプログラムで問題が発生しています。私は 2 つの異なるグループを持っており、事実を直接変更せずに、あるグループの要素を別のグループに関連付けたいと考えています (例: トロント = USA)。
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).
この例では、ジョンは米国の 7 つの都市を旅行し、ジャックはカナダの他の 7 つの都市を旅行しました。
しかし、ジョンは最近トロントに旅行しました。次の結果に到達したいと思います。
? - 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).
私は何を間違っていますか?
ありがとう仲間。