Aktualisierung von Datensätzen
Attributwerte setzen
Die Emailadresse soll ebenfalls im Record gespeichert werden. Dabei sind auch private Mailadressen möglich.
module Mailadressen exposing (..)
type alias Person =
{ vorname : String
, nachname : String
, geburtsjahr : Int
, email : String
}
person1: Person
person1 =
{ vorname = "Anuk"
, nachname = "Franck"
, geburtsjahr = 2015
, email = "anuk@franck.de"
}
mailadresse: Person -> String
mailadresse datensatz =
let
{ vorname, nachname } = datensatz
in
vorname ++ "." ++ nachname ++ "@meine-schule.de"
Eine eventuell vorhandene private Mailadresse soll nun durch die Schulmailadresse ersetzt werden. Der folgende Dialog in der REPL zeigt, wie man Attributwerte gezielt setzen kann.
> import Mailadressen exposing (..)
> { person1 | email = "test@meine-schule.de" }
...
> { person1 | email = mailadresse person1 }
...
Aufgabe 1
Stelle Vermutungen auf welche Wirkung die Ausdrücke haben. Überprüfe die Vermutungen in der REPL und erkläre die Ausdrücke zur Verarbeitung eines Records.
Aufgabe 2
Die Bearbeitung eines Records liefert einen neuen Record ohne den ursprünglichen Record zu verändern. Belege diese Aussage durch Experimente in der REPL.