В настоящее время я пишу программу PROLOG, которая представляет Семейные отношения.
Сейчас я реализовал следующие функции, которые работают.
male(X). Returns true if X is male.
female(X). Returns true if X is female.
mother_of(X,Y). Returns true if X is the mother of Y.
father_of(X,Y). Returns true if X is the father of Y.
sister_of(X,Y). Returns true if X is the sister of Y.
brother_of(X,Y). Returns true if X is the brother of Y.
Теперь я хочу реализовать функцию для проверкиесли кто-то один ребенок / не имеет сестры / брата.Я пробовал следующие функции, но ни одна из них не работает:
single_child(X) :- (\+ sister_of(X,Y)),(\+ brother_of(X,Y)).
single_child(X) :- not(sister_of(X,Y)), not(brother_of(X,Y)).
single_child(X) :- \+ (sister_of(X,Y),\+ brother_of(X,Y)).
single_child(X) :- not(sister_of(X,Y),brother_of(X,Y)).
Кто-нибудь знает, как я могу правильно реализовать такую функцию?
С уважением, Дэвид Дж.