Почему правило Пролог иногда возвращает False с аналогичными данными? - PullRequest
0 голосов
/ 14 февраля 2019

Я не могу понять, почему false возвращается для jordan, но не для china:

Когда я запрашиваю:

countries_visited(jordan, X).

, я получаю возврат ammanи false.

Но когда я запрашиваю

countries_visited(china, X).

, я получаю возврат beijing и shanghai.

city_in_country(amman, jordan).    
city_in_country(shanghai, china).    
city_in_country(beijing, china).    
city_in_country(brussels, belgium).    
city_in_country(london, uk).    
city_in_country(manchester, uk).

city_visited(amman).    
city_visited(beijing).    
city_visited(shanghai).    
city_visited(cairo).    

countries_visited(ThisCountry, ThisCity) :- 
    city_visited(ThisCity), 
    city_in_country(ThisCity, ThisCountry).
...