1
У меня есть свод правил;Prolog - Проблема с разделом в обоих направлениях
family(Mother,Father,Children).
Где дети это список (например, [ag, bg]
).
parent(X,Y) :-
family(X,_,_) -> mother(X,Y); father(X,Y).
С предложением выше оно правильно дает мне детей, если я ставлю родителя. Однако, если я стану ребенком, я не могу получить родителей.
Я также попытался сделать предложение для Ребенка;
child(X,Y) :-
mother(A,X),
father(B,X),
Y=A,B.
Где мать и отец работают правильно, но мне нужны обе переменные, чтобы перейти к Y
.
Любые советы?
Попробуйте этот родительский пункт: 'родитель (X, Y): - семейство (X, _, Y), (мать (X, Y); отец (X, Y)). ' –
@bob_saginowski Я попытался, хотя, несмотря на то, что он правильно нашел обоих родителей, он возвращает false, и он не печатает их как Y = jb1, Y = rb1. – JoeBoggs
И детское положение может быть усложнено: 'child (X, Y): - мать (Y, X); отец (Y, X) .' –