Funktion höherer Ordnung - LinkFang.de





Funktion höherer Ordnung


Dieser Artikel oder Abschnitt ist nicht ausreichend belegt.

Eine Funktion höherer Ordnung (englisch higher-order function) ist in der Informatik eine Funktion, die Funktionen als Argumente erhält oder Funktionen als Ergebnis liefert.

Der Begriff wird insbesondere im Lambda-Kalkül verwendet, der theoretischen Grundlage der Funktionalen Programmierung. Dort ist er eng mit dem Currying verbunden, einem Verfahren, das Funktionen mit mehreren Argumenten in mehrere einparametrige Funktionen umwandelt. Diese Transformation hat ihre Grundlage darin, dass für beliebige Mengen [math]A,B,C[/math] die Funktionenräume [math]A \times B \to C[/math] und [math]A \to (B \to C)[/math] miteinander identifiziert werden können.

Folgende Funktion ist eine Funktion höherer Ordnung:

[math]f\colon \mathbb{R} \to (\mathbb{N} \to \mathbb{R})[/math]

[math]f\colon x \mapsto (m \mapsto x+m)[/math]

Diese Funktion bildet jeden [math]x[/math]-Wert auf eine Funktion ab, die eine (übergebene) natürliche Zahl zu [math]x[/math] addiert. Beispielsweise [math]f(10{,}5) = (m \mapsto 10{,}5+m)[/math]. [math]m[/math] wird wiederum auf [math]x+m[/math] abgebildet: [math](f(10{,}5))(1) = 11{,}5[/math]

Aus dem Lambda-Kalkül stammt der K-Kombinator [math]K = (x \mapsto (y \mapsto x))[/math]. [math](K(x))(y)[/math] ist für alle [math]y[/math] konstant.

Ein bekanntes Beispiel für eine Funktion höherer Ordnung ist der Differentialoperator, weil er Funktionen auf Funktionen abbildet (Ableitung und Stammfunktion). Weitere wichtige Beispiele sind die so genannten Distributionen.

Beispiel aus der funktionalen Programmierung

In den meisten funktionalen Programmiersprachen wie z. B. Haskell ist die Funktion höherer Ordnung map definierbar. Sie erhält als Argument eine Funktion f und gibt eine Funktion zurück, die f auf jedes Element einer übergebenen Liste anwendet. Es ist zu beachten, dass map Funktionen beliebigen Typs als Argument erhalten kann (angedeutet durch die Typvariablen a und b).

map :: (a -> b) -> [a] -> [b]
map f []     = []
map f (x:xs) = (f x):map f xs
 
map (\x -> x^2) [1,2,3,4]     wird ausgewertet zu [1,4,9,16]

Weblinks


Kategorien: Keine Kategorien vorhanden!

Quelle: Wikipedia - http://de.wikipedia.org/wiki/Funktion höherer Ordnung (Vollständige Liste der Autoren des Textes [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Änderungen: Alle Bilder mit den meisten Bildunterschriften wurden entfernt. Ebenso alle zu nicht-existierenden Artikeln/Kategorien gehenden internen Wikipedia-Links (Bsp. Portal-Links, Redlinks, Bearbeiten-Links). Entfernung von Navigationsframes, Geo & Normdaten, Mediadateien, gesprochene Versionen, z.T. ID&Class-Namen, Style von Div-Containern, Metadaten, Vorlagen, wie lesenwerte Artikel. Ansonsten sind keine Inhaltsänderungen vorgenommen worden. Weiterhin kann es durch die maschinelle Bearbeitung des Inhalts zu Fehlern gerade in der Darstellung kommen. Darum würden wir jeden Besucher unserer Seite darum bitten uns diese Fehler über den Support mittels einer Nachricht mit Link zu melden. Vielen Dank!

Stand der Informationen: August 201& - Wichtiger Hinweis: Da die Inhalte maschinell von Wikipedia übernommen wurden, ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.de nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein, bitten wir Sie darum uns per Support oder E-Mail zu kontaktieren. Wir werden uns dann innerhalb von spätestens 10 Tagen um Ihr Anliegen kümmern. Auch ohne Anliegen erfolgt mindestens alle drei Monate ein Update der gesamten Inhalte.