- Prädikatsfunktion
-
Eine Rückruffunktion (englisch callback function) bezeichnet in der Informatik eine Funktion, die einer anderen Funktion als Parameter übergeben wird, und von dieser unter gewissen Bedingungen aufgerufen wird. Dieses Vorgehen folgt dem Entwurfsmuster der Inversion of Control.
Dadurch wird es möglich, Funktionen allgemein zu definieren und erst beim Aufrufen der Funktion durch Angabe der Rückruffunktion das Verhalten exakt zu bestimmen. Häufig bekommt eine Rückruffunktion gar keinen Namen, sondern wird als anonyme Funktion direkt beim Aufruf definiert (siehe auch Lambda-Kalkül). Über Rückruffunktionen erreicht man eine lose Kopplung zwischen einzelnen Komponenten.
Beispiel
Es soll eine Funktion apply_to geschrieben werden, die eine beliebige andere Funktion auf eine Liste von Werten anwendet und eine Liste der Ergebnisse zurückgibt. Eine Umsetzung in Pseudocode:
function apply_to (Funktion, Werte): var Ergebnis; // Liste für die Ergebnisse foreach w in Werte do // für alle Werte ... e = Funktion (w); // rufe die Rückruffunktion ... Ergebnis[] = e; // und hänge das Resultat an die Ergebnisliste an. end; return Ergebnis; end apply_to;
Diese Funktion kann jetzt folgendermaßen verwendet werden:
function verdoppeln (Wert): // dies ist eine Rückruffunktion return Wert * 2; end verdoppeln; function quadrat (Wert): // dies ist eine andere Rückruffunktion return Wert * Wert; end quadrat; // Anwenden der Funktionen auf eine Liste: Werte = (1, 2, 3, 4); Doppelte_Werte = apply_to(verdoppeln, Werte); //ergibt (2,4,6,8) Quadrierte_Werte = apply_to(quadrat, Werte); //ergibt (1,4,9,16)
Oder, kürzer, in Lambda-Notation:
Werte = (1, 2, 3, 4); Doppelte_Werte = apply_to(lambda x: x * 2, Werte); //ergibt (2,4,6,8) Quadrierte_Werte = apply_to(lambda x: x * x, Werte); //ergibt (1,4,9,16)
Siehe auch
Weblinks
Wikimedia Foundation.