Sie sind anders.
Erstklassige Funktionen
Werte in einer Sprache, die durchgehend einheitlich behandelt werden, werden als "First Class" bezeichnet. Sie können in Datenstrukturen gespeichert, als Argumente übergeben oder in Kontrollstrukturen verwendet werden.
Sprachen, die Werte mit Funktionstypen unterstützen und diese wie Nichtfunktionswerte behandeln, können als "erstklassige Funktionen" bezeichnet werden.
Funktionen höherer Ordnung
Eine der Konsequenzen erstklassiger Funktionen ist, dass Sie eine Funktion als Argument an eine andere Funktion übergeben können sollten. Die letztere Funktion ist jetzt "höherer Ordnung". Es ist eine Funktion, die eine Funktion als Argument verwendet.
Das kanonische Beispiel ist "Karte"
map :: (a -> b) -> [a] -> [b]
map f [] = []
map f (x:xs) = f x : map f xs
Das heißt, es benötigt eine Funktion und ein Array und gibt ein neues Array mit der auf jedes Element angewendeten Funktion zurück.
Funktionssprachen - Sprachen, in denen Funktionen das Hauptmittel zum Erstellen von Programmen sind - haben alle erstklassige Funktionen. Die meisten haben auch Funktionen höherer Ordnung (sehr seltene Ausnahmen sind Sprachen wie Excel, die als funktional bezeichnet werden können, aber keine Funktionen höherer Ordnung).