% % Ex.1 return averages every 5 records % % Haixun Wang, hxwang@cs.ucla.edu %% database( { q(P:integer, X:integer) } ). %% export p(P,A). %% p(P, myavg)<-q(P,A). single(myavg, X, (X,1)). multi(myavg, Xs, (Xo,Co), (X,C)) <- X=Xs+Xo, C=1+Co. return(myavg, X, (Yo,Co), A) <- if (X=nil then A= Yo * 1.0 / Co else mod(Co,5), A = Yo * 1.0 / Co). mod(X,X). mod(X,Y)<- X>Y, mod(X-Y,Y).