0
Comment définir une règle relative dans Prolog?Comment définir une règle relative dans Prolog?
C'est ce que je suis arrivé à ce jour:
spouce(X,Y) :-
wife(X,Y).
spouce(X,Y) :-
husband(X,Y).
relative-by-blood(X,Y) :-
ancestor(Z,X),
ancestor(Z,Y).
relative(X,Y) :-
relative-by-blood(X,Y).
relative(X,Y) :-
spouce(X,Y).
relative(X,Y) :-
relative-by-blood(X,Z), %<- not sure what to do here.
Merci à l'avance!
Qu'est-ce que vous décrivez en plus de détails? –
Pouvez-vous nous donner un peu plus d'informations. Voir ma réponse ci-dessous en fonction de ce que vous nous avez donné jusqu'à présent, mais j'ai le sentiment qu'il y a plus dans l'histoire que dans la question. –
Sous la syntaxe ISO Prolog, les atomes sans guillemets ne peuvent pas contenir le tiret-minus, de sorte que «relatif-by-blood (X, Y)» ne sera probablement pas analysé comme vous le souhaitez. Au lieu de cela, vous obtiendrez '- (- (relatif, par), sang (X, Y))'. Je pense que vous voulez 'relatif_by_blood (X, Y)', qui analyse un terme composé à deux arguments avec le foncteur 'relative_by_blood' et les arguments' X' et 'Y'. – bcat