i

Implementierung

Zugriff auf den Payload

Um auf den Payload eines Typs zuzugreifen, müssen wir Pattern Matching verwenden. Wie dies funktioniert, zeigt das folgende Beispiel.

type MeinTyp
    = ErsterFall
    | ZweiterFall Int
    | DritterFall String Int
    | VierterFall { name : String, alter : Int }
    | FuenfterFall (List Int)

meineFunktion : MeinTyp -> String
meineFunktion wert =
    case wert of
        ErsterFall ->
            "Erster Fall"

        ZweiterFall zahl ->
            "Zweiter Fall mit " ++ String.fromInt zahl

        DritterFall text zahl ->
            "Dritter Fall mit " ++ text ++ " und " ++ String.fromInt zahl
        
        VierterFall { name, alter } ->
            "Vierter Fall mit " ++ name ++ " und " ++ String.fromInt alter
        
        FuenfterFall _ ->
            "Fünfter Fall mit Zahlenliste"

Aufgabe 1

Experimentiere mit diesem Beispiel in der REPL. Beschreibe die Anwendung von Pattern Matching.

Aufgabe 2

(a) Implementiere die Funktion begruessen mit der Alternative von LoginStatus, für die du dich auf der vorherigen Seite entschieden hast.

(b) Erweitere LoginStatus um eine Variante Timeout, die den Zustand beschreibt, wenn ein Benutzer zu lange inaktiv war und passe die Funktion begruessen entsprechend an.

Suche

v
8.2.2.8.1.1.2
www.inf-schule.de/deklarativ/fp_elm/elm_programme/typdefinition/begruessung/lernstrecke/implementierung
www.inf-schule.de/8.2.2.8.1.1.2
www.inf-schule.de/@/page/OMILaiD1nKDPAifu

Rückmeldung geben