Exerciții Model parțial, Exercițiul 4

Dutch Royal Family — parent, ruler, predecessor

Pentru baza de cunoștințe din editor (mother/2, father/2, queen/1, king/1):

4a) Definiți următoarele predicate:

  • parent/2parent(X, Y) să fie true când X este părinte al lui Y
  • ruler(X) — să fie true când X este conducător

4b) Definiți un predicat predecessor/2, astfel încât predecessor(X, Y) să ne spună ierarhia de predecesori pentru un conducător X (vrem să răspundem, de fapt, la cine precede pe cine).

Hint pentru predecessor: caz direct — Y este părintele lui X și amândoi sunt ruler; caz recursiv — X are un părinte Z care e și el ruler, iar Z are pe Y ca predecesor.

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)
?
parent(wilhelmina, juliana). așteptat: true
?
ruler(beatrix). așteptat: true
?
predecessor(beatrix, wilhelmina). așteptat: true