Выводит не все строчки ответа (Turbo Prolog)
Формулировка задачи:
Программа выводит ответ начиная с второго print. Как исправить?
Решение задачи: «Выводит не все строчки ответа (Turbo Prolog)»
textual
Листинг программы
sister(X, Y):- woman(X), parents(Z, X), parents(Z, Y).
brother(X, Y):- man(X), parents(Z, X), parents(Z, Y).
father(X, Y):- man(X),parents(X, Y).
mother(X, Y):- woman(X), parents(X, Y).
grandfather(X, Y):- man(X), parents(X,Z), parents(Z, Y).
grandmother(X, Y):- woman(X), parents(X,Z), parents(Z, Y).
print:-sister(X,Y), write(X),write('- sister -'), write(Y), nl, fail.
print:-brother(X,Y), write(X),write('- brother -'), write(Y), nl, fail.
print:-father(X,Y), write(X),write('- father -'), write(Y), nl, fail.
print:-mother(X,Y), write(X),write('- mother -'), write(Y), nl, fail.
print:-grandfather(X,Y), write(X),write('- grandfather -'), write(Y), nl, fail.
print:-grandmother(X,Y), write(X),write('- grandmother -'), write(Y), nl, fail.
print.
parents('Tom','Ellen').
parents('Tom', 'Chris').
parents('Jane', 'Ellen').
parents('Jane', 'Chris').
parents('John', 'Jane').
parents('Eve','Tom').
man('Tom').
man('Chris').
man('John').
woman('Ellen').
woman('Jane').
woman('Eve').