i

Datentypen

Untersuchen der Datentypen

Die Funktionsweise unseres Programms wird noch klarer, wenn wir uns mit den Datentypen beschäftigen, die beim Aufruf der verschiedenen Funktionen relevant sind.

Ein Aufruf von view in der REPL ergibt folgende Ausgabe:

> view
<function> : Int -> String -> Html msg

view erwartet also eine ganze Zahl (den Schlüssel bzw. die Verschiebezahl) und eine Zeichenkette (den Klartext) als Parameter. Die Rückgabe von view ist vom Typ Html msg. Dies erinnert an Datentypen wie List a. Tatsächlich ist die Struktur der beiden Datentypen äquivalent. Eine Liste kann Elemente eines bestimmten Datentyps enthalten. Der Wert a ist eine Typvariable für beliebige Datentypen. Ähnlich ist es bei Html msg. Allerdings ist die Typvariable kein Typ von enthaltenen Elementen - wie bei einer Liste -, sondern der Datentyp einer Nachricht, die z.B. durch Ereignisse wie einen Mausklick erzeugt werden kann. Unser Programm kann noch keine Nachrichten erzeugen (das kommt in einem späteren Projekt), aber die Typvariable gibt es natürlich dennoch. Prinzipiell können Nachrichten einen beliebigen Typ haben. Wenn man auf ein Element klickt, könnte z.B. die Nachricht "Mauswurdegeklickt" vom Typ String oder die Nachricht 5 vom Typ Int erzeugt werden. Vermutlich klingt das noch etwas abstrakt, weil wir noch keine Nachrichten erzeugen können. Du kannst den Typparameter msg fürs erste auch ignorieren.

Aufgabe 1

Experimentiere in der REPL mit den Typen von text, src, width, div und a. Bearbeite dann den Lückentext. (Beachte, dass du dazu die Module Html und Html.Attributes importieren musst)

Aufgabe 2

Erläutere anhand der unten dargestellten Grafik wie die Rückgabetypen der Funktionen und die Typen der Parameter zusammenwirken.
Datentypen Rückegabe und Parameter

Suche

v
8.2.3.2.1.7
dev.inf-schule.de/deklarativ/fp_elm/dynamischewebseiten/caesarstatisch/lernstrecke/datentypen
dev.inf-schule.de/8.2.3.2.1.7
dev.inf-schule.de/@/page/YzyQlGdSyAE7FBKX

Rückmeldung geben