% Calculates n! PROCEDURE m; VAR s, n; PROCEDURE f; VAR m; BEGIN ASSIGN n > m; IF m - 2 THEN ASSIGN n -1 > n; CALL f; ASSIGN s * m > s; FI; IF 1 - m THEN ASSIGN 1 > s; FI; END; BEGIN INPUT n; CALL f; OUTPUT s; END;