Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- predicates
- % First and Second - function params
- % First - child Second
- nondeterm parent(symbol,symbol).
- % When First have parent - return "yes"
- nondeterm islucky(symbol).
- % When First have two children - return "yes"
- nondeterm twochildren(symbol).
- % When First gave
- nondeterm sister(symbol, symbol).
- nondeterm aunt(symbol, symbol).
- nondeterm grandson(symbol, symbol).
- clauses
- islucky(Name):- parent(Name,_).
- twochildren(Name):- parent(Name, Child1), parent(Name, Child2), Child1 <> Child2.
- grandson(Child, Adult):- parent(Adult,X), parent(X, Child).
- sister(Sis, Bro):- parent(X, Sis), parent(X, Bro).
- aunt(Adult, Child):- sister(Adult, X), parent(X, Child).
- parent(pam, bob).
- parent(tom, bob).
- parent(tom, liz).
- parent(bob, ann).
- parent(bob, pat).
- parent(pam, jim).
- %
- % +---+ +---+
- % |jim| |pat|
- % +-+-+ +-+-+
- % ^ ^
- % | |
- % +-+-+ +-+-+ +---+
- % |pam+-->+bob+-->+ann|
- % +---+ +-+-+ +---+
- % ^
- % |
- % +-+-+ +---+
- % |tom+-->+liz|
- % +---+ +---+
- %
- GOAL
- % 4.1
- % parent(pam, bob). % YES
- % parent(tom, bob). % YES
- % parent(tom, liz). % YES
- % parent(ann, bob). % NO
- % 4.2
- % parent(X,pat). % bob
- % parent(liz,X). % tom
- % parent(Y,X), parent(X, pat). % pam, tom
- % 4.last.1
- % islucky(pat). % NO
- % islucky(bob). % YES
- % 4.last.2
- % twochildren(pam). % YES
- % twochildren(tom). % YES
- % twochildren(pat). % NO
- % 4.last.3
- % grandson(pat,pam). % YES
- % grandson(pam,pat). % NO
- % 4.last.4
- % sister(bob, jim). % YES
- % sister(pat, ann). % YES
- %sister(bob, tom). % NO
- %
- % aunt(jim, pat). % YES
- % aunt(jim, ann). % YES
- % aunt(ann, jim). % NO
- % aunt(jim, bob). % NO
Advertisement