[Haskell-cafe] Set of reals...?

Glynn Clements glynn at gclements.plus.com
Fri Oct 29 23:07:36 EDT 2004


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 <glynn at gclements.plus.com>


More information about the Haskell-Cafe mailing list