%{
import aterm.api.*;
import aterm.pure.*;
import java.util.*;
public class java-fib {
private ATermFactory factory;
private AFun fzero, fsuc, fplus,ffib;
private ATermAppl tzero;
public java-fib(ATermFactory factory) {
this.factory = factory;
fzero = factory.makeAFun("zero", 0, false);
fsuc = factory.makeAFun("suc" , 1, false);
fplus = factory.makeAFun("plus", 2, false);
ffib = factory.makeAFun("fib" , 1, false);
tzero = factory.makeAppl(fzero);
}
public void run(int n) {
//System.out.println("run: " + n);
ATerm N = tzero;
for(int i=0 ; i return(x);
%rule plus(x, suc(y)) %--> return(suc(plus(x,y)));
%rule fib(zero) %--> return(suc(tzero));
%rule fib(suc(zero)) %--> return(suc(tzero));
%rule fib(suc(suc(x))) %--> return(plus(fib(x),fib(suc(x))));
%%
public final static void main(String[] args) {
java-fib test = new java-fib(new PureFactory(16));
test.run(5);
test.run(7);
test.run(10);
test.run(20);
}
}
Last modified: Wed Jan 10 15:51:11 GMT 2001