Fachkonzept - Datensatz als Tupel
Ein Tupel bilden
Ein Datentupel fasst mehrere Daten zu einer Einheit zusammen. Die Daten werden dabei in einer vorgegebenen Reihenfolge aufgeführt.
Tupel werden oft in Situationen benutzt (wie Datumsangaben oder Positionsangaben), in denen es fest vorgegebene Vereinarungen über das Format der Daten gibt.
Die Abbildung verdeutlicht, wie ein Tupel in Elm dargestellt wird. Beachte, dass in Elm nur Tupel mit 2 oder 3 Datenwerten möglich sind.

Hier ein Aufruf in der REPL zu diesem Tupel.
> datum = (3, 3, 2023)
(3,3,2023) : ( number, number1, number2 )
Auf die Datenwerte eines Tupels zugreifen
Ein Zugriff mit Zugriffsfunktionen ist nur für Tupel mit 2 Datenwerten möglich.
> uhrzeit = (12, 44)
> Tuple.first uhrzeit
15 : number
> Tuple.second uhrzeit
35 : number1
Mustererkennung verwenden
Bei der Verarbeitung von Tupel ist es meist sinnvoll, das Tupel mit einem Muster zu dekonstruieren.
module Metadaten exposing (..)
type alias Datum = (Int, Int, Int)
datum = (3, 3, 2023)
textAusgabe: Datum -> String
textAusgabe tupeldatum =
let
( tag, monat, jahr ) = tupeldatum
in
"Datum: " ++ (String.fromInt tag) ++ "." ++ (String.fromInt monat) ++ "." ++ (String.fromInt jahr)
> import Metadaten exposing (..)
> textAusgabe datum
"Datum: 3.3.2023" : String
Kurz und sehr übersichtlich wird eine Funktionsdefinition, wenn man das Muster direkt als Parameter benutzt.
module Metadaten exposing (..)
type alias Datum = (Int, Int, Int)
datum = (3, 3, 2023)
textAusgabe: Datum -> String
textAusgabe ( tag, monat, jahr ) =
"Datum: " ++ (String.fromInt tag) ++ "." ++ (String.fromInt monat) ++ "." ++ (String.fromInt jahr)
> import Metadaten exposing (..)
> textAusgabe datum
"Datum: 3.3.2023" : String