Verarbeitung von Datensätzen über Mustererkennung
Mailadressen erzeugen
Wir betrachten noch einmal die Funktion mailadresse
in der
folgenden Form.
Signatur:
mailadresse: Person -> String
Beispiele:
mailadresse { vorname = "Anuk", nachname = "Franck", geburtjahr = 2015 } -> "Anuk.Frank@meineschule.de"
Einen Zugriff auf Attributwerte kann man oft indirekt mit der Vorgabe von Mustern bewirken.
module Mailadressen exposing (..)
type alias Person =
{ vorname : String
, nachname : String
, geburtsjahr : Int
}
person1 : Person
person1 =
{ vorname = "Anuk"
, nachname = "Franck"
, geburtsjahr = 2015
}
mailadresse : Person -> String
mailadresse datensatz =
let
{ vorname, nachname } = datensatz
in
vorname ++ "." ++ nachname ++ "@meine-schule.de"
> import Mailadressen exposing (..)
> mailadresse person1
"Anuk.Franck@meine-schule.de" : String
Aufgabe 1
Teste das selbst und erkläre den Aufbau der Funktionsdefinition.
Aufgabe 2
Das Muster kann auch direkt bei der Parameterangabe benutzt werden. Teste auch diese Version.
module Mailadressen exposing (..)
...
mailadresse : Person -> String
mailadresse { vorname, nachname } =
vorname ++ "." ++ nachname ++ "@meine-schule.de"
Aufgabe 3
Nutze eine der beiden Formen, um auch das Geburtsjahr in die Mailadresse einzubauen.