Prozedurtypen

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

SortedBinaryTrees.od
TYPE
   CompareProc = PROCEDURE
         (object1, object2: Objects.Object) : INTEGER;
      (* return an integer value
            < 0 if object1 < object2
            = 0 if object1 = object2
            > 0 if object1 > object2
      *)

*Wenn ein abstraktes Modul für sortierte binäre Bäume formuliert wird, sollte es nach Möglichkeit von dem zu vergleichenden Typ V und der vollständigen Ordnungsrelation R unabhängig sein.
 
*Das läßt sich in Oberon durch die Verwendung von Prozedurtypen erreichen. Einer Variablen von einem Prozedurtyp (hier z.B. CompareProc) kann eine beliebige Prozedur zugewiesen werden, die einen äquivalenten Prozedurkopf besitzt (hier z.B. Compare).
 
CalendarManager.om
PROCEDURE Compare(app1, app2: Objects.Object) : INTEGER;
BEGIN
   RETURN Op.Compare(app1(Appointment).time,
                     app2(Appointment).time)
END Compare;

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1999 Andreas Borchert, in HTML konvertiert am 29.06.1999