Zurück Weiter Inhalt

1.3 Signatur, Definition

In Haskell werden Werte und Funktionen verwendet.

Wert

Werte werden mit Namen und Typ in der Signatur definiert. Der Wert des Wertes wird in der Definition zugewiesen. Der Wert ist nicht veränderbar. Soll der Wert geändert werden, so muss ein neuer Wert definiert werden.

Syntax

Signatur: Name :: Typ
Definition: Name = Ausdruck

Beispiel: Laenge als Int mit Wert 5+2

Signatur: Laenge :: Int
Definition: laenge = 5+2

Funktion

Eine Funktion hat mindestens einen Parameter und genau einen Rückgabewert. Signatur beschreibt, wie die Funktion aufgerufen wird. Mindestens eine Definition gibt an, wie der Rückgabewert berechnet wird.

Syntax

Signatur: Name :: Typ1 -> Typ2 -> ... -> TypK -> TypR
Definition: Name parm1 parm2 ... parmK = Ausdruck

Beispiel: Funktion quadrat mit einem Paramter Int und Ergebnis Int

Signatur: quadrat :: Int -> Int
Definition: laenge n = n * n

Typ1 bis TypK sind die formalen Parameter. TypR ist der Rückgabewert oder der Ergebniswert. Parm1 bis ParmK sind die in der Funktion verwendbaren Parameter. Auf der rechten Seite der Definition steht der Ausdruck, der das Ergebnis der Funktion mit Hilfer der Parameter berechnet.

Partielle Auswertung

Sollten nicht alle Parameter einer Funktion beim Aufruf übergeben werden, so wird die Funktion nur zum Teil ausgewertet. Das Ergebnis ist eine Funktion mit den noch offenen Parametern. In der englischen Literatur wird dieses Verhalten "currying" genannt.

Beispiel:

xPlusY :: Int -> Int -> Int
xHochY x y = x + y

Wird die Funktion xPlusY nur mit dem Parameter x=3 aufgerufen, so ist das Ergebnis vom Typ Int -> Int, also eine Funktion "dreiPlusY".

dreiPlusY :: Int -> Int
dreiPlusY y = 3 + y


Zurück Weiter Inhalt