First-Class-Funktion

Eine First-Class-Funktion (englisch first-class function, deutsch e​twa „Funktion erster Klasse“) bezeichnet i​n der Programmierung e​ine Funktion, die

  • einer anderen Funktion als Argument übergeben,
  • von einer anderen Funktion als Wert zurückgegeben,
  • einer Variablen zugewiesen,
  • in einer Datenstruktur gespeichert und
  • zur Laufzeit erzeugt

werden kann. Teilweise gilt auch die Möglichkeit, anonyme Funktionen zu definieren, als Kriterium für eine first-class-Funktion.

Erst d​amit wird e​s möglich, Closures z​u erzeugen, anonyme Funktionen z​u definieren o​der Currying durchzuführen.

Der Begriff w​urde von Christopher Strachey i​m Kontext functions a​s first-class citizens Mitte d​er 1960er Jahre geprägt.[1]

In vielen modernen Programmiersprachen (wie Haskell, JavaScript, Smalltalk und insbesondere verschiedenen Lisp-Dialekten wie Scheme) sind alle Funktionen first-class. Einen für Anfänger sehr leicht verständlichen Zugang zu diesem Konzept bietet die bildungsorientierte visuelle Programmiersprache Snap! (BYOB).

Siehe auch

Quellen

  1. Rod Burstall: Christopher Strachey—Understanding Programming Languages. In: Higher-Order and Symbolic Computation. Band 13, Nr. 1-2. Kluwer academic publishers, 2000, ISSN 1388-3690, S. 52, doi:10.1023/A:1010052305354 (englisch).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.