MR K P SCHUPKE wrote:

> >Double already has +Inf and -Inf; it's just that Haskell doesn't have
> >(AFAIK) syntax to write them as constants.
> 
>       In the source for the GHC libraries it uses 1/0 for +Infinity
> and -1/0 for -Infinity, so I assume these are the "official" way to do it.
> 
> Personally I would define nicer names:
> 
>       positiveInfinity :: Double
>       positiveInfinity = 1/0
> 
>       negativeInfinity :: Double
>       negativeInfinity = -1/0

Or just:

        infinity = 1/0

and use -infinity for the negative.

One other nit: isn't the read/show syntax for Haskell98 types supposed
to valid Haskell syntax?

>From http://www.haskell.org/onlinereport/derived.html#derived-text

        The result of show is a syntactically correct Haskell
        expression containing only constants, given the fixity
        declarations in force at the point where the type is declared.

[Note: the above sentecne refers specifically to derived instances,
but induction would require that it also holds for base types.]

However:

        Prelude> let infinity = 1/0 :: Double
        Prelude> show infinity
        "Infinity"
        Prelude> read (show infinity) :: Double
        Infinity
        Prelude> Infinity
        
        <interactive>:1: Data constructor not in scope: `Infinity'

-- 
Glynn Clements <[EMAIL PROTECTED]>
_______________________________________________
Haskell-Cafe mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to