J'ai récemment commencé à apprendre l'orme. Quand j'ai vu le type Int
, j'ai supposé que c'était quelque chose comme Int
de Haskell, qui est (je pense) un entier machine.Pourquoi `NaN` est-il une valeur possible pour le type` Int` dans Elm?
Mais je fus surpris de voir ceci:
> Result.withDefault 0 <| String.toInt "-"
NaN : Int
NaN
est un concept à virgule flottante qui semble comme il ne devrait pas appliquer aux entiers. Il semble que cela pourrait être une fuite de JS, ce qui impliquerait que Int
est représenté comme JS Number
.
Est-ce le cas? Pourquoi cette décision de conception a-t-elle été prise et où puis-je aller pour en apprendre davantage?
(En outre, deux questions mineures:
- Pourquoi ne pas
NaN
valide littérale - Comment puis-je vérifier pour assurer ma valeur
Int
est pas unNaN
La fonctionisNaN
est de type?Float -> Bool
http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#isNaN
)