Eine Funktion höherer Ordnung (englisch higher-order function) ist in der Informatik eine Funktion, die Funktionen als Argumente erhält und/oder Funktionen als Ergebnis liefert. Der Begriff wird insbesondere im Lambda-Kalkül verwendet, der theoretischen Grundlage der Funktionalen Programmierung.

Der Curry-Operator ist ein Beispiel für eine Funktion höherer Ordnung. Er wandelt Funktionen mit mehreren Argumenten in mehrere einparametrige Funktionen um. Diese Transformation hat ihre Grundlage darin, dass für beliebige Mengen die Funktionenräume und miteinander identifiziert werden können.

Folgende Funktion stellt ein Beispiel für eine Funktion höherer Ordnung dar:

Diese Funktion bildet jeden reellen -Wert auf eine Funktion ab, die eine (übergebene) natürliche Zahl zu addiert. Beispielsweise ist . wird wiederum auf abgebildet. Beispielsweise ist .

Aus dem Lambda-Kalkül stammt der K-Kombinator . ist für alle 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. Im Fall mit ist ein -Vektorraum und daher ist ein Funktional.

Beispiel aus der funktionalen Programmierung

Bearbeiten

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]

In einer multiparadigmatischen Programmiersprache wie Wolfram Language kann eine Funktion höherer Ordnung folgendermaßen aussehen:

In[1]:= Nest[# + 3 &, 7, 2]
Out[1]:= 13
Bearbeiten

📚 Artikel Terkait di Wikipedia

First-Class-Funktion

Burstall: Christopher Strachey—Understanding Programming Languages. In: Higher-Order and Symbolic Computation. Band 13, Nr. 1-2. Kluwer academic publishers

COVID-19-Laborunfallhypothese

Wuhan Center for Disease Control and Prevention (WHCDC), an denen Gain-of-function-Forschung an Coronaviren betrieben wurde, wobei letzteres sich in unmittelbarer

Hemmungskontrolle

3758/s13423-012-0345-4, PMID 23229442 (englisch): “Executive functions are strategic in nature and depend on higher-order cognitive processes that underpin planning, sustained

Bläulinge

Zolotuhin, Andreas Zwick: Order Lepidoptera Linnaeus, 1758. In: Z.-Q. Zhang: (Hrsg.): Animal biodiversity: An outline of higher-level classification and

Ted Kaczynski

Ph.d. promoviert wurde. Für seine Dissertation mit dem Titel Boundary Functions wurde er mit dem Sumner-Myers-Preis ausgezeichnet. Sein Fachgebiet war

Stephen A. Cook

Plenarvortrag auf dem ICM in Kyoto (Computational complexity of higher type functions). Cook wuchs als Sohn eines Chemie-Professors und einer Englischlehrerin

Alison Steadman

(Champions) 1984: Magere Zeiten – Der Film mit dem Schwein (A Private Function) 1985: Spuren der Liebe (Coming Through) (TV-Film) 1986: Clockwise – Recht

Maggie Smith

Jane) 2007: Capturing Mary 2007: Harry Potter und der Orden des Phönix (Harry Potter and the Order of the Phoenix) 2009: Harry Potter und der Halbblutprinz