Tupeltypen

In Haskell besteht die Möglichkeit Funktionen Tupel zu übergeben oder Tupel zurückliefern zu lassen. Die Angabe der Datentypen erfolgt dann in Klammern (die einzelnen Typen durch Komma getrennt), damit Haskell weiß, dass diese Werte als Tupel übergeben werden sollen:

Die Werte von Tupel können einzeln verwendet werden, indem den einzelnen Werten Variablennamen zugeordnet werden (wie im Beispiel add) oder als Tupel verwendet werden. Bei erstem müssen Klammern gesetzt werden, damit Haskell weiß, dass wir die Werte der Tupel verwenden wollen und nicht die Tupel als Ganzes verwenden (zB. zum Weitergeben an eine Funktion).

add :: (Int, Int, Int) -> (Int, Int, Int) -> (Int, Int, Int)
add (a,b,c) (d,e,f) = (a+d, b+e, c+f)

Unter Verwendung der obigen add-Funktion können wir eine Funktion definieren, die einen übergebenen Tupel mit sich selbst addieren soll:

addSame :: (Int, Int, Int) -> (Int, Int, Int)
addSame a = add a a

Dabei wird das übergebene Tupel sowohl als ersten als auch als zweiten Parameter übergeben.