У меня есть вопрос к этому: Finding the oldest person in Prologнайти самые старые человек в Прологе
данные:
age(john, 10).
age(mary, 15).
age(rose, 75).
age(jack, 49).
age(carl, 17).
age(lucy, 66).
Так что этот запрос будет возвращать старые человек:
oldest(P) :- age(P, X), \+ (age(_, Y), Y > X).
Я новичок для Пролога, и мне трудно понять этот запрос, особенно часть \+
.
Что я понимаю: для того, чтобы получить самого старого человека, мы возьмем всех людей с возрастом X, без людей с возрастом Y больше X. Но это вернет самого молодого человека. Я смущен: D
Помощи по этому вопросу?
Он гласит: P является человеком (кто возраст X) такое, что не существует никакого другого человека, для которого его/ее возраст выше, чем P, возраст. – gusbro
@gusbro Я понимаю, отправьте его как ответ, пожалуйста. –
Еще интереснее: добавьте «возраст (тони, 75)». И снова задайте вопрос! Вы не станете самым старым человеком, кроме самых старых. – false