6b4bde14e1
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@1903 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
49 lines
828 B
Plaintext
49 lines
828 B
Plaintext
|
|
:- object(paths).
|
|
|
|
:- info([
|
|
version is 1.0,
|
|
author is 'Paulo Moura',
|
|
date is 2007/05/14,
|
|
comment is 'Simple tabling example using graph paths.',
|
|
source is 'Direct conversion to Logtalk of a XSB tabling example.']).
|
|
|
|
:- public(path/2).
|
|
:- table(path/2).
|
|
|
|
path(X,Y) :- path(X,Z), edge(Z,Y).
|
|
path(X,Y) :- edge(X,Y).
|
|
|
|
edge(1,2).
|
|
edge(2,2).
|
|
edge(2,4).
|
|
edge(2,3).
|
|
edge(3,5).
|
|
|
|
:- end_object.
|
|
|
|
|
|
:- object(fibonacci).
|
|
|
|
:- info([
|
|
version is 1.1,
|
|
author is 'Paulo Moura',
|
|
date is 2007/05/28,
|
|
comment is 'Simple tabling example using Fibonacci numbers.',
|
|
source is 'Direct conversion to Logtalk of a B-Prolog tabling example.']).
|
|
|
|
:- public(fib/2).
|
|
:- table(fib/2).
|
|
|
|
fib(0, 1).
|
|
fib(1, 1).
|
|
fib(N,F) :-
|
|
N > 1,
|
|
N1 is N - 1,
|
|
N2 is N - 2,
|
|
fib(N1, F1),
|
|
fib(N2, F2),
|
|
F is F1 + F2.
|
|
|
|
:- end_object.
|