Ich habe eine Frage dazu: Finding the oldest person in PrologSuche nach der ältesten Person in Prolog Abfrage
Daten:
age(john, 10).
age(mary, 15).
age(rose, 75).
age(jack, 49).
age(carl, 17).
age(lucy, 66).
Also diese Abfrage wird die älteste Person zurück:
oldest(P) :- age(P, X), \+ (age(_, Y), Y > X).
Ich bin neu Prolog und ich habe eine harte Zeit, diese Abfrage zu verstehen, vor allem die \+
Teil.
Was ich verstehe: um die älteste Person zu bekommen nehmen wir alle Personen mit einem Alter von X, ohne die Personen mit einem Alter von Y größer als X. Aber dies würde die jüngste Person zurückgeben. Ich bin verwirrt: D
Können Sie beim Lesen dieser Abfrage helfen?
Dort heißt es: P ist eine Person (wer Alter ist, ist X), so dass es keine andere Person ist, für die sein/ihr Alter höher als P ist Alter. – gusbro
@gusbro Ich verstehe, post als Antwort bitte. –
Noch interessanter: add 'age (tony, 75) .' Und stelle die Frage erneut! Sie werden nicht die älteste Person, sondern die ältesten Personen bekommen. – false