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

Closure (Funktion)

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

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

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

Proteinfehlfaltungserkrankung

E. Piters, C. Culha u. a.: First missense mutation in the SOST gene causing sclerosteosis by loss of sclerostin function. In: Human Mutation. Band 31

SFC

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

Prototype (Klassenbibliothek)

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

Verzögerte Initialisierung

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

TypeScript

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