1
0
Fork 0
ITI0021-loogiline-programme.../PR03/prax03.pl

64 lines
1.2 KiB
Prolog
Executable File

#!/usr/bin/swipl
married(marta, mart).
married(liisa, joosep).
married(anne, vello).
mother(evelin,anne).
mother(mikk, anne).
mother(juku, anne).
mother(anne, liisa).
mother(mart, liisa).
female(marta).
female(anne).
female(evelin).
female(liisa).
male(vello).
male(mikk).
male(juku).
male(mart).
father(Laps, Isa):-
mother(Laps, Ema),
married(Ema, Isa),
male(Isa).
brother(Laps, Vend):-
mother(Laps, Ema),
mother(Vend, Ema),
Laps \= Vend,
male(Vend).
sister(Laps, Ode):-
mother(Laps, Ema),
mother(Ode, Ema),
Laps \= Ode,
female(Ode).
uncle(Laps, Uncle):-
(mother(Laps, Vanem); father(Laps, Vanem)),
brother(Vanem, Uncle).
aunt(Laps, Aunt):-
(mother(Laps, Vanem); father(Laps, Vanem)),
sister(Vanem, Aunt).
grandmother(Laps, GM):-
(mother(Laps, Vanem); father(Laps, Vanem)),
mother(Vanem, GM).
grandfather(Laps, GF):-
(mother(Laps, Vanem); father(Laps, Vanem)),
father(Vanem, GF).
ancestor(C, G):- mother(C, G).
ancestor(C, F):- father(C, F).
ancestor(C, G):-
(mother(C, Anc);father(C, Anc)),
ancestor(Anc, G).
male_ancestor(C, A):- ancestor(C, A), male(A).
female_ancestor(C, A):- ancestor(C, A), female(A).