% -*- Prolog -*-
%
% Basic compilation checks: recursive arithmetic.
%
% $Id: 206,v 1.2 2000/10/13 00:52:12 peteg Exp $

:- compile.

%fib(0, 1) :- !.
%fib(1, 1) :- !.
fib(N, F) :-
	N0 is N - 1,
	N1 is N - 2,
	fib(N0, F0),
	fib(N1, F1),
	F is F0 + F1.
% Normalised:
%fib(_A0, _B0) :-
%        unify(_D0, -(_E0, _F0)),
%        unify(_A0, _E0),
%        unify(_F0, 1),
%        is(_C0, _D0),
%        unify(_H0, -(_I0, _J0)),
%        unify(_A0, _I0),
%        unify(_J0, 2),
%        is(_G0, _H0),
%        fib(_C0, _K0),
%        fib(_G0, _L0),
%        unify(_M0, +(_N0, _O0)),
%        unify(_K0, _N0),
%        unify(_L0, _O0),
%        is(_B0, _M0).

main :-
	fib(10, F), write(F), nl.
