> >>>>> "Sohrab" == Sohrab Saran <[EMAIL PROTECTED]> writes:
>
> > If at the Hugs interpreter prompt I type:
> > 3/4 == 3/4
> > ...I get "True"
> > If I now type:
> > 3/0 == 3/0
> > ...I should get "True" but I get a divide-by-zero error
> > instead. Anyone ready to fix this, or should I fix this myself?
>
> I don't believe this is a bug.
>
> Suppose we adopt your proposal, I think we'd also want to add the
> following equalities too:
>
> 1. f 3 == f 3 = True
>
> 2. f 3 == g 3 = True where g x = f x
>
> 3. f 3 == g 3 = True where g x = x / 0; f x = x / 0
>
> 4. f 3 == g 3 = True where g is semantically equivalent to f
>
> The problem with this is that it's hard to say why we'd accept 1-3 but
> not accept 4 and accepting 4 requires us to solve the halting problem.
I think you're missing the point - the original poster wants 3/0 to have
a non-bottom value, namely Infinity, which would make the equality hold.
This works in GHCi, because we choose to represent floating point
exceptions with the special values Infinity and NaN, but a Haskell
implementation isn't required to do this (see section 6.4 in the
report).
Personally I think GHC's behaviour is preferrable because it more
closely matches the IEEE standard and other languages.
Cheers,
Simon
_______________________________________________
Hugs-Bugs mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/hugs-bugs