g x y = ...eine zweistellige Funktion ist, und e ein Ausdruck (vom richtigen Typ), dann ist "g e" eine einstellige Funktion.
Tatsächlich gibt es in Haskell nur einstellige Funktionen, und die mehrstelligen werden simuliert. Jetzt wird auch die Notation für die Typen klar: Wir schreiben zwar
g :: a -> b -> caber der Pfeil ist ein Typkonstruktor mit zwei Argumenten. Es sind einfach einige Klammern weggelassen, der vollständige Ausdruck ist
g :: a -> (b -> c)
Wir hatten vorhin
um :: [Char] -> [Char] um cs = map hoch cs where ...Genausogut können wir schreiben
um :: [Char] -> [Char] um = map hoch where ...Tatsächlich ist diese Variante sogar vorzuziehen, denn das Argument cs wird in der Definition gar nicht weiter benutzt, und wir gewinnen keinerlei neue Information dadurch, daß dort ein "cs" steht.