Exerciții Laboratorul 1, Exercițiul 2

ancestor_of/2 — strămoș

Utilizând aceeași bază de cunoștințe ca la Exercițiul 1, definiți un predicat ancestor_of/2, care să verifice dacă al doilea argument este strămoș al primului. Predicatul trebuie să fie true pentru toate întrebările pe linia directă, de exemplu ?- ancestor_of(olivia, sam).

?- ancestor_of(olivia, sam).
true.

Hint: două clauze — caz direct (parent_of/2) și caz recursiv (mergi cu un pas de părinte și reapelează).

Te-ai blocat?
editor soluție
?-
Tastează o interogare (ex. father_of(sandra, X).) și apasă Enter — sau apasă pe un caz de test de mai jos.
Cazuri de test (3 — apasă pe unul ca să îl rulezi, sau Verifică pentru toate)
?
ancestor_of(olivia, sam). așteptat: true
?
ancestor_of(sandra, sam). așteptat: true
?
ancestor_of(sam, olivia). așteptat: false