Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- :- initialization(consult(kinship)).
- rec :- consult(prog).
- pred(X,Y) :-
- parent(X,Y);
- parent(X,Z), pred(Z,Y).
- brother(X,Y) :-
- male(X),
- male(Y),
- parent(M,X),
- female(M),
- parent(F,X),
- male(F),
- parent(M,Y),
- parent(F,Y),
- X \= Y.
- married0(X,Y) :-
- parent(X,Z),
- parent(Y,Z),
- X \= Y.
- married(X,Y) :-
- setof(Y,married0(X,Y),Lst),
- member(Y,Lst).
- husband(X,Y) :-
- married(X,Y),
- male(X).
- cousin0(X,Y) :-
- parent(XP,X),
- parent(YP,Y),
- parent(Z,XP),
- parent(Z,YP),
- XP \= YP,
- \+ married(XP,YP),
- X \= Y.
- cousin(X,Y) :-
- setof(Y,cousin0(X,Y),Lst),
- member(Y,Lst).
- num_of_children(X,N) :-
- setof(Y,parent(X,Y),Lst),
- length(Lst,N).
- nephews0(X,Y) :-
- parent(Z,Y),
- parent(Z,YY),
- parent(YY,X),
- Y \= YY.
- nephews(X,Y) :-
- setof(Z,nephews0(Z,Y),NS),
- sort(NS,X).
- common_child(X,Y,Z) :-
- parent(X,Z),
- parent(Y,Z).
- family([F,M|C]) :-
- married(F,M),
- male(F),
- setof(CC,common_child(F,M,CC),CCC),
- sort(CCC,C).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement