[Haskell-cafe] Why aren't Float and Double Bounded?
isaacdupree at charter.net
Tue Nov 27 20:37:11 EST 2007
>>>> Among numeric types, it seems that only integer types are Bounded.
>>> Maybe because IEEE format supports Infinity?
>> therefore, maxBound is Infinity and minBound negative infinity?
> But IEEE can be run with projective infinity in which case there is only one
> of them.
Well, if Double becomes a proper member of Ord (which it already almost
never is, because of NaN), then, since it is defined by a finite number
of bits, it can be Bounded. Maybe this means "projective infinity"
breaks Ord like NaN does. Any of this potential variation in Double
obviously breaks referential transparency too, if it depends on what
implementation you're using.
succ/pred are odd for Double too; even if Bounded and defined by a
finite number of bits, you would not be able to have a finite
[minBound..0] or [minBound..maxBound].
Basically, it's not Bounded, not for a particular reason, but just
because it's rather broken from a Haskell point of view anyway, IMHO.
More information about the Haskell-Cafe