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

12 lines
238 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)?