J'ai du mal à envelopper ma tête autour de la façon dont je retournerais une liste de tout le monde lié à une certaine personne. Donc, si je dis des parents (A, B), A serait une personne et B est une liste de toutes les personnes liées à cette personne. Je peux écrire toutes les règles supplémentaires nécessaires pour aider à faire cela. Voici ce que j'ai jusqu'ici.Trouver tous les parents avec Prolog
man(joe).
man(tim).
man(milan).
man(matt).
man(eugene).
woman(mary).
woman(emily).
woman(lily).
woman(rosie).
woman(chris).
parent(milan, mary).
parent(tim, milan).
parent(mary, lily).
parent(mary, joe).
parent(mary, matt).
parent(chris, rosie).
parent(eugene, mary).
parent(eugene, chris).
cousins(A, B) :- parent(C, A), parent(D, B), parent(E, C), parent(E, D), not(parent(C, B)), not(parent(D, A)), A \=B.
paternalgrandfather(A, C) :- man(A), man(B), parent(B, C), parent(A, B).
sibling(A, B) :- parent(C, A), parent(C, B), A \= B.
Quelqu'un peut-il me guider sur la façon dont j'irais faire cela? Merci.
Vous souhaitez une fonction récursive qui s'ajoute au résultat dans la récursivité. – keyser