Zum Inhalt springen

First-Class-Funktion

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 26. Mai 2014 um 11:27 Uhr durch Trashcoder (Diskussion | Beiträge) (Im Wikipedia-Artikel First-Class-Objekt steht, dass in C++ Funktionen keine First-Class Objekte sind. Daher habe ich C++ herausgenommen. Auch die Quelle 3 bestätigt dieses.). Sie kann sich erheblich von der aktuellen Version unterscheiden.

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

  1. Rod Burstall, "Christopher Strachey—Understanding Programming Languages", Higher-Order and Symbolic Computation 13:52 (2000)

Siehe auch