[Haskell-cafe] 0/0 > 1 == False

Derek Elkins derek.a.elkins at gmail.com
Wed Jan 16 20:30:42 EST 2008


On Thu, 2008-01-17 at 03:16 +0100, Mitar wrote:
> Hi!
> 
> On Jan 11, 2008 7:30 AM, Cristian Baboi <cristi at ot.onrc.ro> wrote:
> > NaN is not 'undefined'
> 
> Why not? What is a semantic difference? I believe Haskell should use
> undefined instead of NaN for all operations which are mathematically
> undefined (like 0/0). NaN should be used in a languages which does not
> support such nice Haskell features. Because if Haskell would use
> undefined such error would propagate itself to higher levels of
> computations, with NaN it does not.
> 
> if bigComputation > 1
>   then ...
>   else ...
> 
> Would be evaluating else semantically correct if bigComputation
> returns NaN? No, it is not. With undefined this is correctly
> (not)evaluated.

For the love of Pete, floating point numbers are not real numbers.  0/0
is mathematically defined for floating point numbers to be NaN.  If you
don't want to use IEEE floating point numbers, use a different type as
was suggested early in this thread.



More information about the Haskell-Cafe mailing list