PROCEDURE <Prozedurname> <Parameterangabe> : <Typ>;das Funktionsresultat wird aus dem Rumpf, wo immer es berechnet wurde, durch eine Anweisung RETURN <Ausdruck> an den Aufrufer übergeben.
Es ist gute Praxis, bei Funktionsvereinbarungen nur Wertparameter zu verwenden und auf Seiteneffekte gänzlich zu verzichten!
PROCEDURE HexDigit(n: CARDINAL): CHAR;
(* PRE n < 16 *)
BEGIN IF n < 10
THEN RETURN CHR(ORD('0') + n)
ELSE RETURN CHR(ORD('A') + n - 10)
END
END HexDigit;