racket/collects/tests/datalog/examples/ancestor.rkt
2011-06-28 02:01:41 -04:00

13 lines
239 B
Racket

#lang datalog
% Equality test
ancestor(A, B) :-
parent(A, B).
ancestor(A, B) :-
parent(A, C),
D = C, % Unification required
ancestor(D, B).
parent(john, douglas).
parent(bob, john).
parent(ebbon, bob).
ancestor(A, B)?