Logo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

Minimallogo des digitalen Schulbuchs inf-schule.de. Schriftzug in Zustandsübergangsdiagramm eines endlichen Automaten.

s n h m r u
i

Verarbeitung von Tupeln

Mustererkennung verwenden

Die Mustererkennung erfolgt bei Tupeln völlig analog zu Records.

module Metadaten exposing (..)

type alias Datum = (Int, Int, Int)
type alias Zeit = (Int, Int)
type alias Metadaten =
    { datum: Datum 
    , uhrzeit: Zeit
    }

metadatenFoto1: Metadaten
metadatenFoto1 = { datum = (9, 8, 2022), uhrzeit = (15, 35) }

textAusgabe: Metadaten -> String
textAusgabe datensatz =
    let
        { datum, uhrzeit } = datensatz
        ( tag, monat, jahr ) = datum
    in
    "Das Foto wurde am " 
        ++ (String.fromInt tag) ++ "." 
        ++ (String.fromInt monat) ++ "." 
        ++ (String.fromInt jahr) ++ " gemacht."
> import Metadaten exposing (..)
> textAusgabe metadatenFoto1
"Das Foto wurde am 9.8.2022 gemacht." : String

Aufgabe 1

(a) Analysiere und erkläre die Definition der Funktion textAusgabe.

(b) Ergänze die Ausgabe der Uhrzeit.

(c) Ergänze die Ausgabe der Position.

Zugriffsfunktionen verwenden

Für Tupel gibt es auch vordefinierte Zugriffsfunktionen - jedoch nur für Tupel mit zwei Elementen. Das schränkt die Möglichkeiten für einen Zugriff mit Zugriffsfunktionen stark ein. Es ist daher in der Regel günstiger mit Mustererkennung zu arbeiten.

> metadatenFoto1.uhrzeit
...
> Tuple.first metadatenFoto1.uhrzeit
...
> Tuple.second metadatenFoto1.uhrzeit
...
> metadatenFoto1.datum
...
> Tuple.first metadatenFoto1.datum
...

Aufgabe 2

(a) Analysiere und erkläre die Experimente in der REPL.

(b) Deute auch die Fehlermeldung.

Suche

v
8.2.2.7.2.1.2
dev.inf-schule.de/deklarativ/fp_elm/elm_programme/datensaetze/tupel/lernstrecke/verarbeitungzugriff
dev.inf-schule.de/8.2.2.7.2.1.2
dev.inf-schule.de/@/page/7p0dZWZFhJQLQlMf

Rückmeldung geben