2010-12-07 20 views
0

On suppose que les faits suivants sont déjà entrées dans la base de données Prolog:Prolog: X est le grand-père de Y

father(X, Y)  // X is the father of Y 
mother(X, Y)  // X is the mother of Y 
male(X)   // X is a male 
female(X)  // X is a female 
parent(X, Y)  // X is a parent of Y 
diff(X, Y)  // X and Y are different 

(1) Maintenant, ajoutez une règle Prolog pour grandpa_of (X, Y) où « X est le grand-père de Y »

(2) Ajouter une autre règle pour frères et soeurs (X, Y) où "X est le frère de Y"

Mes pensées:

question 1:

Je suis confus sur la façon dont je peux retrouver les parents des parents, tout ce que j'ai est jusqu'à présent

grandpa_of (X, Y): - mâle (X), ...

Question 2:

frères et soeurs (X, Y): - parent (P, X), parent (P, Y), diff (X, Y)

+0

Est-ce devoir? – Paul

+0

Si X est le grand-père de Y, qu'est-ce que cela dit à propos du père/mère de Y? –

+0

@Paul: La classe est terminée, cela vient d'une finale passée. J'ai donc besoin de l'apprendre, mais ce n'est pas pour les marques. –

Répondre

5

Je pense que Jason signifie grandpa_of(X,Y) :- father(X,P), parent(P,Y).

+1

Il ya une faute de frappe ci-dessus. Au lieu de ': =', il devrait y avoir ': -'. –

2

Il a été longtemps ... Le premier est quelque chose comme ceci:

grandpa_of(X, Y) :- father(X, P), father(P, Y). 

trop longtemps ... :-P