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;