榆树有无穷大常数吗?



根据这个: http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#isNaN

Elm 支持无穷大并认为它是一个数字。现在我使用 inf = 1/0 作为常量,但我想知道如何导入无穷大,而不是定义它。

那么,Elm 是否有无穷大常数,我该如何导入它?

我看到你已经有了答案,但这里有一种方法可以使用Maybe来模拟无穷大

infinity =
    Nothing

lessThan : Int -> Maybe Int -> Maybe Int
lessThan x y =
    case y of
        Just y_ ->
            if x < y_ then
                Just x
            else
                y
        Nothing ->
            Just x

如果您要在 Elm 中为 Int s 建模无穷大,我建议您重用Maybe因为接受的答案不清楚,不是一个很好的选择,而是为这种情况创建一个更明确的自定义类型:

type MaybeInfiniteInt 
  = Finite Int
  | Infinite
min : Int -> MaybeInfiniteInt -> MaybeInfiniteInt
min xInt y = 
  case y of
     Finite yInt ->
        if xInt < yInt then
           Finite xInt
        else 
           y
     Infinte ->
         Finite xInt
{-| Note the argument order is designed for reading in a pipe: y |> moreThan x
-}
moreThan : Int -> MaybeInfiniteInt -> MaybeInfiniteInt
moreThan xInt y = 
  case y of
     Finite yInt ->
        yInt > xint
     Infinte ->
         True

最新更新