t_call.mod 335 B

123456789101112131415161718
  1. MODULE TCall;
  2. // Value params, function result, recursion. Exit 125.
  3. VAR ExitCode : INTEGER;
  4. PROCEDURE Add(a, b : INTEGER) : INTEGER;
  5. BEGIN
  6. RETURN a + b
  7. END Add;
  8. PROCEDURE Fact(n : INTEGER) : INTEGER;
  9. BEGIN
  10. IF n <= 1 THEN RETURN 1 END;
  11. RETURN n * Fact(n - 1)
  12. END Fact;
  13. BEGIN
  14. ExitCode := Add(40, 2) + Fact(5) - 37
  15. END TCall.