Zwei Sorten von Zahlen
Zahlen und ihre Darstellung in Elm untersuchen
Es gibt in Elm zwei Sorten von Zahlen:
Zahlen vom Typ Int - das sind ganze Zahlen - und Zahlen vom Typ Float - das sind Gleitkommazahlen.
Aufgabe 1
Führe in der REPL Dialoge mit Elm wie dem Folgenden aus. Was kannst du deuten, was noch nicht?
> 2
2 : number
> 2.0
2 : Float
> 2.5
2.5 : Float
> -2
-2 : number
> -2.0
-2 : Float
> zahl1 : Int
| zahl1 = 2
|
2 : Int
> zahl2 : Float
| zahl2 = 2.0
|
2 : Float
Aufgabe 2
Hier ist etwas schiefgegangen. Deute die Fehlermeldung.
> zahl3 : Int
| zahl3 = 2.0
|
-- TYPE MISMATCH ---------------------------------------------------------- REPL
Something is off with the body of the `zahl3` definition:
3| zahl3 = 2.0
^^^
The body is a float of type:
Float
But the type annotation on `zahl3` says it should be:
Int
...
Zahlen und ihre Darstellung in Elm verstehen
Hier einige Infos zu den Datentypen, die Elm zur Darstellung von Zahlen verwendet. Weitere Infos findest du auf Elm - Basics.
- Für die Darstellung von Zahlen verwendet Elm die Datentypen
Int(für ganze Zahlen) undFloat(für Gleitkommazahlen). - Beispiele für Zahlen vom Typ
Int:3;-3 - Beispiele für Zahlen vom Typ
Float:3.14;3.0;3;-3 - Elm erschließt für alle Datenobjekte immer automatisch den zugehörigen Datentyp und gibt ihn beim Ergebnis einer Auswertung mit an.
- Es fällt auf, dass Zahlen wie z.B.
3und-3als Zahlen vom TypIntund als Zahlen vom TypFloatgedeutet werden können. Aus der Darstellung3kann Elm den Datentyp nicht eindeutig erschließen. In diesem Fall nutzt Elm die Typkennzeichnungnumber(fürIntoderFloat). - Im Gegensatz zu
IntoderFloatwirdnumberklein geschrieben, da es eine Typvariable ist, die für die konkreten DatentypenIntbzw.Floatsteht. Nähere Infos findest du in der Elm-Dokumentation.
Aufgabe 3
Nutze diese Informationen, um den oben gezeigten Dialog mit Elm zu erklären.
Aufgabe 4
Wenn du die Rückmeldungen von Elm richtig vorhersagen kannst, dann hast du die Zahldarstellung in Elm verstanden. Überprüfe deine Vohersagen in der REPL.
> 3.14
...
> 0
...
> -1
...
> zahl1 : Int
| zahl1 = -2
|
...
> zahl2 : Float
| zahl2 = -2
|
...