Anonyme Funktion

Eine anonyme Funktion oder anonyme Subroutine ist eine Funktion in einem Computerprogramm, die nicht über ihren Namen, sondern nur über Verweise wie Referenzen oder Zeiger angesprochen werden kann.

Inhaltsverzeichnis

Benannte Funktionen

Das Konzept benannter Funktionen ist aus praktisch jeder verbreiteten Programmiersprache bekannt: Eine Funktion erhält bei ihrer Deklaration einen eindeutigen Namen, unter dem sie anschließend angesprochen wird.

Beispiel in Perl
# Deklaration und Definition der Funktion
sub benannteFunktion
  {
  ... Code ...
  }
 
# Aufruf der Funktion 
benannteFunktion( ... );


Der Name der Funktion wird vom Laufzeitsystem dazu verwendet, mit Hilfe der Symboltabelle oder eines dynamischen Verfahrens die Funktionsdefinition zu identifizieren und dort hinterlegten Code auszuführen. In kompilierten Sprachen löst prinzipiell ähnlich bereits der Linker die Namen nicht-virtueller Funktionen auf.

Anonyme Funktionen

Mit dem Konzept anonymer Funktionen ist es möglich, neben benannten auch unbenannte Funktionen zu definieren.

Beispiel in Perl
# Deklaration und Definition der Funktion und Zuweisung an eine (Referenz-)Variable
my $funktionsReferenz = sub { ... }
 
# Aufruf der Funktion
$funktionsReferenz->( ... );


Da die Funktion hierbei keinen Namen hat, ist ein symbolischer Aufruf nicht mehr möglich. Sie wird vielmehr über eine Referenz, einen Verweis auf die Definition, indirekt angesprochen.

Anonyme Funktionen können die Programmierung kontextabhängiger Funktionsaufrufe sehr stark vereinfachen. Darüber hinaus ermöglichen sie die einfache Verwendung von Funktionsreferenzen als Funktionsargumente, beispielsweise zur Übergabe einer Rückruffunktion (Callback), und die Speicherung in Datenstrukturen.

Beispiele in Perl
# Eine Rückruffunktion an eine Funktion übergeben
rueckrufendeFunktion( rueckgerufeneFunktion => sub { ... }, ... );


# Funktionsreferenzen in einer Hashtabelle speichern

my funktionen = (
                the   => sub { ... },
                quick => sub { ... },
                brown => sub { ... },
                fox   => sub { ... },
                ...
                );


Das verwandte Konzept der Funktionszeiger in den Programmiersprachen C oder C++ bietet im Prinzip ähnliche Möglichkeiten, ist aber aufgrund seiner Syntax nicht trivial in der Anwendung. Zudem bleibt dort die eigentliche Funktion gleich benannt, separat definierte Verweise darauf können aber beliebige Namen tragen.

In Java können für diesen Zweck anonyme innere Klassen[1] und ab Version 8 Closures[2] verwendet werden.

Anonyme Funktionen werden von den meisten Skriptsprachen unterstützt, beispielsweise von Perl, Python, Lisp und - in neueren Versionen - von JavaScript und JScript.

Einzelnachweise

  1. Christian Ullenboom: Java ist auch eine Insel. 9 Auflage. Galileo Press, Bonn 2011, ISBN ISBN 978-3-8362-1506-0, 8.1.4 Anonyme innere Klassen.
  2. (hs): Project Lambda: So werden Closures in Java 8 aussehen. In: JAXenter. it republik, 9. September 2011, abgerufen am 19. September 2011.

Weblinks


Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Anonyme Subroutine — beschreibt eine Funktion eines Computerprogramms, die nicht über ihren Namen, sondern ausschließlich über Verweise (Referenzen, Zeiger, etc.) angesprochen werden kann. Das Konzept benannter Funktionen ist aus praktisch jeder verbreiteten… …   Deutsch Wikipedia

  • Anonyme Pipe — Die Pipe (englisch für Rohr, Röhre) bezeichnet einen gepufferten uni oder bidirektionalen Datenstrom zwischen zwei Prozessen nach dem „First In – First Out“ Prinzip. Das heißt vereinfacht, dass die Ausgabe eines Prozesses (ein Programm in… …   Deutsch Wikipedia

  • Anonyme Alkoholiker — Logo der Anonymen Alkoholiker; Wegweiser zu einer Kontaktstelle Die Anonymen Alkoholiker (AA) (engl. Alcoholics Anonymous) definieren sich selbst als eine Gemeinschaft von Männern und Frauen, die ihre Erfahrung, Kraft und Hoffnung teilen, um sich …   Deutsch Wikipedia

  • Call back Funktion — 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… …   Deutsch Wikipedia

  • Callback-Funktion — 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… …   Deutsch Wikipedia

  • Rückruf-Funktion — 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… …   Deutsch Wikipedia

  • Lambda-Funktion — steht für das atomare Element des Lambda Kalküls, einer formalen turing vollständigen Programmiersprache, die nur drei Konstrukte kennt: Abstraktion (Definition einer Lambda Funktion), Applikation (Anwendung einer Lambda Funktion) und Variable… …   Deutsch Wikipedia

  • Common-Lisp — Inoffizielles Lisp Logo Basisdaten Paradigmen: multiparadigmatisch: funktional, prozedural …   Deutsch Wikipedia

  • Common LISP — Inoffizielles Lisp Logo Basisdaten Paradigmen: multiparadigmatisch: funktional, prozedural …   Deutsch Wikipedia

  • Common Lisp — Inoffizielles Lisp Logo Basisdaten Paradigmen: multiparadigmatisch: funktional, prozedural, modular, objektorientiert …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”