racket/collects/tests/datalog/examples/tutorial.rkt
2010-06-25 22:36:12 -06:00

43 lines
740 B
Racket

#lang datalog
parent(john,douglas).
parent(john,douglas)?
% parent(john, douglas).
parent(john,ebbon)?
parent(bob,john).
parent(ebbon,bob).
parent(A,B)?
% parent(john, douglas).
% parent(bob, john).
% parent(ebbon, bob).
parent(john,B)?
% parent(john, douglas).
parent(A,A)?
ancestor(A,B) :- parent(A,B).
ancestor(A,B) :- parent(A,C), ancestor(C, B).
ancestor(A, B)?
% ancestor(ebbon, bob).
% ancestor(bob, john).
% ancestor(john, douglas).
% ancestor(bob, douglas).
% ancestor(ebbon, john).
% ancestor(ebbon, douglas).
ancestor(X,john)?
% ancestor(bob, john).
% ancestor(ebbon, john).
parent(bob, john)~
parent(A,B)?
% parent(john, douglas).
% parent(ebbon, bob).
ancestor(A,B)?
% ancestor(john, douglas).
% ancestor(ebbon, bob).