First-Class-Funktion
Eine first-class-Funktion (englisch first-class function) bezeichnet in der Programmierung von Computersystemen eine 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 damit wird es möglich, Closures zu erzeugen, anonyme Funktionen zu definieren oder Currying durchzuführen.
Der Begriff wurde von Christopher Strachey im Kontext “functions as first-class citizens” Mitte der 1960er Jahre geprägt.[1]
In vielen modernen Programmiersprachen wie Haskell, JavaScript, Smalltalk und insbesondere verschiedenen Lisp-Dialekten wie Scheme sind die Funktion first-class. Einen für Anfänger sehr leicht verständlichen Zugang zu diesem Konzept bietet die für Kinder entwickelte visuelle Programmiersprache Snap! (BYOB).
Quellen
- ↑ Rod Burstall, "Christopher Strachey—Understanding Programming Languages", Higher-Order and Symbolic Computation 13:52 (2000)