/* File: fibonacci.P /* Author: Ned Okie (et al.) /* Date: 9/15/95 /* Purpose: To illustrate basic xsb rules and syntax /* To invoke prolog compiler: /software/unix/XSB/emu/xsb -i */ fib(0,1). /* Base case 1 */ fib(1,1). /* Base case 2 (Note that 2 base cases are needed) */ fib(M,N) :- M>1, M1 is M - 1, M2 is M - 2, /* Recursive definition */ fib(M1,N1), fib(M2,N2), N is N1 + N2. fibdemo1(X) :- fib(X,N), write(N). /* Demonstrations */ fibdemo2 :- read(X), fib(X,N), write(N).