MODULE func_ptr EXPORTS Main; IMPORT IO, Fmt; TYPE funktion = REF PROCEDURE(a : INTEGER); (* zeiger auf funktion mit int parameter *) VAR proc_ptr : funktion; (* variable des typs *) PROCEDURE help(nr : INTEGER) = BEGIN IO.Put("nr = " & Fmt.Int(nr) & "\n"); END help; PROCEDURE print(int : INTEGER) = BEGIN FOR i := 0 TO int DO IO.Put(Fmt.Int(i) & "\n"); END; END print; BEGIN proc_ptr := NEW(funktion); (* speicher reservieren *) proc_ptr^ := help; (* wert zuweisen *) proc_ptr^(10); (* ausfuehren *) proc_ptr^ := print; (* geht auch *) proc_ptr^(10); (* ausfuehren *) END func_ptr.