car(Z,X,C > 10000,V).
не будет работать, потому что пролог попытается объединить каждый заголовок правила с car(Z,X,C > 10000,V).
, и он потерпит неудачу для каждого из них.
Подробнее:
car(ford, mondeo, 125600, 31000)
не удастся объединить с car(Z,X,C > 10000,V)
, потому что 125600
не удастся объединить с C > 10000
.
Обязательно прочитайте и поймите , как работает объединение .
Правильная стратегия заключается в использовании обратного отслеживания для фильтрации результатов: вы, вероятно, заметили, что ввод запроса car(Z,X,C,V)
вернет вам все данные автомобилей.
Если вы добавите к этому еще одну цель, он будетнужно вернуться назад, когда вторая цель провалилась, и попробовать другой выбор.
Продолжить чтение также с поиском доказательства .
Вторая цель, которую вы должны добавить к вашему запросу.тогда C>10000
:
car(Z,X,C,V), C > 10000