RosettaCodeData/Task/Ackermann-function/Simula/ackermann-function.simula

16 lines
439 B
Plaintext

BEGIN
INTEGER procedure
Ackermann(g, p); SHORT INTEGER g, p;
Ackermann:= IF g = 0 THEN p+1
ELSE Ackermann(g-1, IF p = 0 THEN 1
ELSE Ackermann(g, p-1));
INTEGER g, p;
FOR p := 0 STEP 3 UNTIL 13 DO BEGIN
g := 4 - p/3;
outtext("Ackermann("); outint(g, 0);
outchar(','); outint(p, 2); outtext(") = ");
outint(Ackermann(g, p), 0); outimage
END
END