ex5: init prolog
This commit is contained in:
1
assignment5/.gitignore
vendored
Normal file
1
assignment5/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
ass5.pdf
|
||||
9
assignment5/Makefile
Normal file
9
assignment5/Makefile
Normal file
@@ -0,0 +1,9 @@
|
||||
PROLOG = swipl
|
||||
.PHONY: run clean
|
||||
all: run/main.pl
|
||||
run/%:
|
||||
@$(PROLOG) -f $* -t halt -q
|
||||
consult/%:
|
||||
@$(PROLOG) -f $* -q
|
||||
clean:
|
||||
rm -f *.qlf
|
||||
19
assignment5/test.pl
Normal file
19
assignment5/test.pl
Normal file
@@ -0,0 +1,19 @@
|
||||
parent(tom, bob).
|
||||
parent(tom, liz).
|
||||
parent(bob, ann).
|
||||
parent(bob, pat).
|
||||
parent(pat, jim).
|
||||
|
||||
grandparent(X, Z) :- parent(X, Y), parent(Y, Z).
|
||||
ancestor(X, Y) :- parent(X, Y).
|
||||
ancestor(X, Y) :- parent(X, Z), ancestor(Z, Y).
|
||||
|
||||
:- initialization(main).
|
||||
|
||||
main :-
|
||||
write('Grandparents of jim: '),
|
||||
findall(X, grandparent(X, jim), Grandparents),
|
||||
write(Grandparents), nl,
|
||||
write('Ancestors of jim: '),
|
||||
findall(X, ancestor(X, jim), Ancestors),
|
||||
write(Ancestors), nl.
|
||||
Reference in New Issue
Block a user