Eine First-Class-Funktion (englisch first-class function, deutsch etwa „Funktion erster Klasse“) bezeichnet in der Programmierung 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 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

Bearbeiten

Quellen

Bearbeiten
  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).

📚 Artikel Terkait di Wikipedia

First-Class-Objekt

werden kann. Der Begriff wurde von Christopher Strachey im Kontext functions as first-class citizens Mitte der 1960er Jahre geprägt. Ein Objekt ist von erster

Closure (Funktion)

(englisch).  Lambda functions. Abgerufen am 17. Oktober 2015 (englisch).  Anonymous functions. Abgerufen am 19. Mai 2015.  The Closure class. Abgerufen am 19

SFC

Hongkongs Sequential Function Chart, eine Ablaufsprache einer Speicherprogrammierbaren Steuerung Sergeant First Class, Rang des amerikanischen Militärs

Lua

verwandten Sprachen): function factorial(n) return n == 0 and 1 or n * factorial(n - 1) end Funktionen gelten in Lua als First-Class-Objekte. Das bedeutet

Prototype (Klassenbibliothek)

Konstruktor initialize: function () { this.data = "Hello World"; } }); var DataWriter = Class.create(FirstClass, { printData: function () { document.write(this

Anonyme Funktion

Funktionen sind in funktionalen Programmiersprachen und anderen Sprachen mit First-Class-Funktionen allgegenwärtig, wo sie für den Funktionstyp dieselbe Rolle

TypeScript

Kompilierung ermöglichen. Dies ist optional und kann ignoriert werden. function add(left: number, right: number): number { return left + right; } Die Annotationen

Verzögerte Initialisierung

{ public class Fruit { private var _typeName:String; private static var instancesByTypeName:Dictionary = new Dictionary(); public function Fruit(typeName:String):void