t_mutual.mod 438 B

1234567891011121314151617
  1. MODULE TMutual;
  2. // Mutual recursion through FORWARD. Exit 11.
  3. VAR ExitCode : INTEGER;
  4. PROCEDURE Even(n : INTEGER) : BOOLEAN; FORWARD;
  5. PROCEDURE Odd(n : INTEGER) : BOOLEAN;
  6. BEGIN
  7. IF n = 0 THEN RETURN FALSE END;
  8. RETURN Even(n - 1)
  9. END Odd;
  10. PROCEDURE Even(n : INTEGER) : BOOLEAN;
  11. BEGIN
  12. IF n = 0 THEN RETURN TRUE END;
  13. RETURN Odd(n - 1)
  14. END Even;
  15. BEGIN
  16. IF Even(10) AND Odd(11) THEN ExitCode := 11 ELSE ExitCode := 0 END
  17. END TMutual.