i

Verwendung von Aliasnamen

Eine komplizierte Typangabe vereinfachen

Wir betrachten noch einmal die Darstellung eines Datensatzes als Record.

module Mailadressen exposing (..)

person1 = 
    { 
        vorname = "Anuk", 
        nachname = "Franck", 
        geburtsdatum = 
            { 
                tag = 6, 
                monat = 6, 
                jahr = 2006 
            } 
    }
> import Mailadressen exposing (..)
> person1
{ geburtsdatum = { jahr = 2006, monat = 6, tag = 6 }, nachname = "Franck", vorname = "Anuk" }
    : { geburtsdatum : { jahr : number, monat : number1, tag : number2 }
      , nachname : String
      , vorname : String
      }

Bei der Auswertung von person1 wird folgende Typangabe von Elm erzeugt:

{ geburtsdatum : { jahr : number, monat : number1, tag : number2 }, nachname : String, vorname : String}

Elm hat die Struktur des Records somit genau erfasst. Die Typangabe ist hier recht lang und daher für Menschen nicht so gut lesbar. Elm stellt - wie andere Programmiersprachen auch - für solche Situationen eine Möglichkeit bereit, abkürzende Alsiasnamen zu verwenden.

Aliasnamen kennst Du sicher aus der Musikszene: Cherilyn Sarkisian La Piere alias Cher oder Paul David Hewson alias Bono haben Aliasnamen gewählt - vermutlich um besser wiedererkannt zu werden und sich damit besser vermarkten zu können.

Wir verwenden Aliasnamen hier, um komplizierte Typangaben leichter verwenden zu können.

module Mailadressen exposing (..)

type alias Person =
    { 
        vorname: String, 
        nachname: String, 
        geburtsdatum: 
            { 
                tag: Int, 
                monat: Int, 
                jahr: Int 
            }
    }

person1: Person
person1 = 
    { 
        vorname = "Anuk", 
        nachname = "Franck", 
        geburtsdatum = 
            { 
                tag = 6, 
                monat = 6, 
                jahr = 2006 
            }
    }
> import Mailadressen exposing (..)
> person1
{ geburtsdatum = { jahr = 2006, monat = 6, tag = 6 }, nachname = "Franck", vorname = "Anuk" }
    : Person

Aufgabe 1

(a) Vergleiche die beiden Implementierungen zum betrachteten Datensatz.

(b) Teste auch die Version mit Aliasnamen.

Aufgabe 2

Ergänze den Record für person1 um die folgende Adresse. Ergänze hierzu auch die Festlegung des Typ-Aliasnamen.

Adresse: 
Moselweg 44 
54321 Konz

Suche

v
110.2.8.1.1.2
inf-schule.de/fp_elm_alteversion/elm_programme/datensaetze/datenrecord/lernstrecke/typalias
inf-schule.de/110.2.8.1.1.2
inf-schule.de/@/page/2CNx749V7QYoQri9

Rückmeldung geben