Benutzer:West of House/Generische Funktion
Generische Funktionen (nicht zu verwechseln mit Funktionen bei der Generischen Programmierung) ist innerhalb der Objektorientierten Programmierung ein Konzept bestimmter Programmiersprachen wie Common Lisp, die Multimethoden implementieren. Da sich Multimethoden sich aufgrund ihrer Natur nicht sinnvoll einer Klasse zuordnen lassen, werden sie statt dessen einer Generischen Funktion zugeordnet. Die Gesamtheit der auf diesem Weg einer Generischen Funktion zugeordneten Methoden bildet dann ihren Funktionsumfang.
Generische Funktionen in Common Lisp
[Bearbeiten | Quelltext bearbeiten]Definition
[Bearbeiten | Quelltext bearbeiten]Generische Funktionen werden mit dem Makro defgeneric definiert. Die formale Parameterliste besteht nur aus den Parametertypen, da keine Parameternamen benötigt werden. Einen eigenen Funktionskörper haben Generische Funktionen nicht.
(defgeneric meine-funktion (typ1 typ2 typ3))
Verwendung
[Bearbeiten | Quelltext bearbeiten]Die G.F. bildet nur den Einstiegspunkt in eine Hierarchie von Methoden. Ihre Defnition darf unterbleiben, da sie automatisch erfolgt, sobald eine erste Methode gleichen Namens definiert wird. Sofern allerdings optionale, keyword- oder rest-Parameter vorgesehen sind, kann die genaue Spezifikation der Parameterliste nur über eine explizite Definition der G.F. erfolgen.