Zwei Typen 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 wie dem Folgenden aus und erläutere die Ergebnisse.
Hinweise zu Zahlen in Elm
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.
- Man kann den Typ eines Datenobjektes auch explizit angeben.
- 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.
> 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
...
Aufgabe 3
Wenn du die Rückmeldungen des folgenden Dialogs 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
|
...