i

Verwaltung als Tupel

Paare und Tripel bilden

Wir betrachten einen Datensatz mit Metadaten zu einem Foto.

Metadaten:
...
Name: IMG_0589.JPG
...
Aufnahmedatum: 09.08.2022 15:35 
...
Breitengrad: 50° 56' 9,822" N
Längengrad: 6° 57' 54,57" O
...

Im letzten Abschnitt wurde gezeigt, wie man Datensätze mit Hilfe von Records verwaltet. Die Grundidee besteht darin, die einzelnen Daten mit Hilfe von Attributen zu einer Einheit zusammenzufassen.

Alternativ hierzu kann man aus mehreren Daten auch sogenannte Tupel bilden. Den Begriff "Tupel" verwendet man als Verallgemeinerung von "Paar", "Tripel", "Quadrupel" usw..

Aufgabe 1

Der folgende Quelltext zeigt, wie man Tupel in Elm bildet. Teste selbst mit analogen Daten. Erkläre die Ausgabe in der REPL, insbesondere auch die Typangaben.

module Metadaten exposing (..)

datum = (9, 8, 2022)
uhrzeit = (15, 35)

metadatenFoto1 = (datum, uhrzeit)
> import Metadaten exposing (..)
> uhrzeit
...
> datum
...
> metadatenFoto1
...

Aufgabe 2

Möchte man die Metadaten zu einem Foto in einem Tupel zusammenfassen und dabei auch die Angaben zum Breiten- und Längengrad berücksichtigen, wäre folgender Ansatz denkbar.

module Metadaten exposing (..)

datum = (9, 8, 2022)
uhrzeit = (15, 35)
breitengrad = "50° 56' 9,822\" N"
laengengrad = "6° 57' 54,57\" O"
metadatenFoto1 = (datum, uhrzeit, breitengrad, laengengrad)
> import Metadaten exposing (..)
...

(a) Erkläre die Verwendung der Anführungszeichen in breitengrad und laengengrad.

(b) Teste die Wirkung in der REPL und erläutere die Beschränkung, die man bei der Tupelbildung in Elm beachten muss.

(c) Löse das Problem, indem du geschachtelte Tupel verwendest.

(d) Löse das Problem mit Hilfe von Records.

Aufgabe 3

Für Tupel kann man genau wie bei Records Aliasnamen einführen, um Typangaben möglichst einfach zu gestalten.

module Metadaten exposing (..)

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

metadatenFoto1: Metadaten
metadatenFoto1 = ...

Ergänze die Implementierung und teste die Verwendung in der REPL.

Suche

v
8.2.2.7.2.1.1
dev.inf-schule.de/deklarativ/fp_elm/elm_programme/datensaetze/tupel/lernstrecke/verwaltungtupel
dev.inf-schule.de/8.2.2.7.2.1.1
dev.inf-schule.de/@/page/oAE1a4N9nsl4FcIK

Rückmeldung geben