% generated: 17 November 1989 | |
% option(s): SOURCE_TRANSFORM_1 | |
% | |
% tak | |
% | |
% Evan Tick (from Lisp version by R. P. Gabriel) | |
% | |
% (almost) Takeuchi function (recursive arithmetic) | |
tak :- tak(18,12,6,_). | |
tak(X,Y,Z,A) :- | |
X =< Y, | |
Z = A. | |
tak(X,Y,Z,A) :- | |
X > Y, | |
X1 is X - 1, | |
tak(X1,Y,Z,A1), | |
Y1 is Y - 1, | |
tak(Y1,Z,X,A2), | |
Z1 is Z - 1, | |
tak(Z1,X,Y,A3), | |
tak(A1,A2,A3,A). |