home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 5 / DATAFILE_PDCD5.iso / utilities / b / binprolog / !BinPro330 / progs / tak < prev    next >
Encoding:
Text File  |  1994-12-01  |  609 b   |  29 lines

  1. %
  2. %   tak
  3. %
  4. %   Evan Tick (from Lisp version by R. P. Gabriel)
  5. %
  6. %   (almost) Takeuchi function (recursive arithmetic)
  7. %   arithmetics reordered for optimal inline execution - Paul Tarau 1994
  8.  
  9. :-write('In BinProlog use: -h1200 '),nl.
  10.  
  11. go :- statistics(runtime,_), tak,
  12.      statistics(runtime,[_,Y]), write('time : '),write(Y), nl.
  13.  
  14.  
  15. tak :- tak(18,12,6,R), write(tak(18,12,6)=R), nl.
  16.  
  17. tak(X,Y,Z,A):-
  18.         X =< Y,!,
  19.         A = Z.
  20. tak(X,Y,Z,A):-
  21.         X1 is X - 1,
  22.         Y1 is Y - 1,
  23.         Z1 is Z - 1,
  24.         tak(X1,Y,Z,A1),
  25.         tak(Y1,Z,X,A2),
  26.         tak(Z1,X,Y,A3),
  27.         tak(A1,A2,A3,A).
  28.  
  29.