Здравствуйте , имеется БД генеалогического древа ,представленная в коде. Хочу сделать вывод братьев и сестер без повторов (фото вывода прикрепил). Подскажите пожалуйста как можно сделать его используя cut (!).
| Код | male("Владислав"). male("Олег"). male("Данил"). male("Антон"). male("Борис"). male("Владимир"). male("Григорий"). male("Петр"). male("Роман").
female("София"). female("Ксения"). female("Вероника"). female("Мария"). female("Диана"). female("Евгения"). female("Влада"). female("Юлия"). female("Екатерина"). female("Анна"). female("Елена"). female("Наталья").
pair("Владислав","София"). pair("Олег","Ксения"). pair("Владимир","Вероника"). pair("Данил","Диана"). pair("Антон","Евгения"). pair("Борис","Влада"). pair("Виктор","Юлия"). pair("Илья","Екатерина"). pair("Григорий","Анна"). pair("Петр","Елена"). pair("Роман","Наталья").
child("Олег","Владислав"). child("Олег","София"). child("Вероника","Владислав"). child("Вероника","София"). child("Мария","Владислав"). child("Мария","София"). child("Данил","Олег"). child("Данил","Ксения"). child("Юлия","Олег"). child("Юлия","Ксения"). child("Анна","Мария"). child("Евгения","Диана"). child("Евгения","Данил"). child("Екатерина","Юлия"). child("Екатерина","Виктор"). child("Петр","Анна"). child("Петр","Григорий"). child("Борис","Антон"). child("Борис","Евгения"). child("Наталья","Елена"). child("Наталья","Петр").
parent(X,Y):- child(Y,X).
father(X,Y):- male(X), parent(X,Y).
mother(X,Y):- female(X), parent(X,Y).
sibling(X,Y):- parent(Z,X), parent(Z,Y), X =\= Y.
?- sibling(X,Y),write("Брат / сестра: "+X+" для "+Y),nl,fail.
|
|