【问题标题】:Why is `NaN` a possible value for type `Int` in Elm?为什么 `NaN` 是 Elm 中`Int` 类型的可能值?
【发布时间】:2017-12-05 08:22:18
【问题描述】:

我最近开始学习 Elm。当我看到 Int 类型时,我认为它类似于 Haskell 的 Int,它(我认为)是一个机器整数。

但看到这个我很惊讶:

> Result.withDefault 0 <| String.toInt "-"
NaN : Int

NaN 是一个浮点概念,似乎不适用于整数。看起来这可能是从 JS 泄漏的,这意味着 Int 表示为 JS Number

是这样吗?为什么做出这个设计决定?我可以去哪里了解它?

(另外,还有两个小问题:

)

【问题讨论】:

  • 好像在0.19修复了

标签: elm


【解决方案1】:

NaN 不是有效的 Int 值。这是elm-lang/core 包中的一个错误,它有since been fixed on master,但尚未发布。

【讨论】:

    【解决方案2】:

    回答第二个小问题(太可怕了它还没有过时)NaN 似乎是唯一的x 这样x /= x

    【讨论】:

    • 你知道是否可以从 Elm 应用程序中检查 NaN 吗?
    • 你的意思是 isNaN 用于浮动的函数吗?对于有故障的整数,您可以使用isNaNInt x = x /= x
    • 对不起,由于这个问题,我假设了一些上下文,但是是的:对于 Int。谢谢。另外,我没有意识到 that comparison is out of the IEEE NAN spec 不仅仅是一个 JavaScript 怪癖。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多