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.
3
und-3
als Zahlen vom TypInt
und als Zahlen vom TypFloat
gedeutet werden können. Aus der Darstellung3
kann Elm den Datentyp nicht eindeutig erschließen. In diesem Fall nutzt Elm die Typkennzeichnungnumber
(fürInt
oderFloat
). - Im Gegensatz zu
Int
oderFloat
wirdnumber
klein geschrieben, da es eine Typvariable ist, die für die konkreten DatentypenInt
bzw.Float
steht. 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
|
...