home *** CD-ROM | disk | FTP | other *** search
/ APDL Public Domain 1 / APDL_PD1A.iso / program / language / huprolog / Source / NREV < prev    next >
Encoding:
Text File  |  1990-06-01  |  842 b   |  49 lines

  1.  
  2. app([],X,X).
  3. app([H|X],Y,[H|Z]):-
  4.     app(X,Y,Z).
  5.  
  6. nrev([],[]).
  7. nrev([X|Y],Z):-
  8.     nrev(Y,T),
  9.     app(T,[X],Z).
  10.  
  11. genlist(I,[I|L]):-
  12.     I>0,
  13.     Y is I- 1,
  14.     genlist(Y,L).
  15. genlist(0,[]).
  16.  
  17. gen(N) :- 
  18.     genlist(N,X),asserta(numlist(X)).
  19.  
  20. test:-
  21.         numlist(X), timer(0), u(X), timer(T),
  22.         LIPS is 5000000//T, retract(a(A)), SA is A+LIPS, asserta(a(SA)),
  23.         retract(n(N)), SN is N+1, asserta(n(SN)),
  24.         S is SA//SN,
  25.         write('LIPS:'),write(LIPS),write('    S='),write(S),nl,!.
  26.  
  27. exec(X):-nrev(X,_),!,fail.
  28. u(X):-exec(X).
  29. u(X):-exec(X).
  30. u(X):-exec(X).
  31. u(X):-exec(X).
  32. u(X):-exec(X).
  33. u(X):-exec(X).
  34. u(X):-exec(X).
  35. u(X):-exec(X).
  36. u(X):-exec(X).
  37. u(X):-exec(X).
  38. u(_).
  39.  
  40. run:-repeat,test,fail.
  41.  
  42. ?- asserta(a(0)),asserta(n(0)).
  43. ?- gen(100).
  44. ?- write('\nStandard Benchmark Test  10*nrev(100)\n').
  45. ?- test.
  46. ?- test.
  47. ?- test.
  48.  
  49.