t_nestrec.mod 347 B

12345678910111213141516171819
  1. MODULE TNestRec;
  2. // Nested recursion + up-level accumulator. Exit 15.
  3. VAR ExitCode : INTEGER;
  4. PROCEDURE Walk(n : INTEGER);
  5. VAR acc : INTEGER;
  6. PROCEDURE Down(k : INTEGER);
  7. BEGIN
  8. IF k <= 0 THEN RETURN END;
  9. acc := acc + k;
  10. Down(k - 1)
  11. END Down;
  12. BEGIN
  13. acc := 0;
  14. Down(n);
  15. ExitCode := acc
  16. END Walk;
  17. BEGIN
  18. Walk(5)
  19. END TNestRec.