
On Fri, 5 Nov 2004, Keith Wansbrough wrote:
On Fri, Nov 05, 2004 at 10:53:36AM +0100, Marcin 'Qrczak' Kowalczyk wrote:
ross@soi.city.ac.uk writes:
[The proposal is to add 0:%0, 1:%0 and -1:%0 to Rational.]
Changing Rational from meaning rational numbers would also be bad. I'd prefer to redefine realToFrac to go through a new type that is the union of Rational and these values.
It's not enough if you care about preserving -0.0.
True, and denormalized values (whatever they are).
Denorms are handled fine by ordinary Rationals, but collapsing all NaNs down to 0:%0 is not necessarily the right thing to do.
Yep. Given a % b == c % d iff a*d == b*c then 0 % 0 is equivalent to each other rational. :-)
Surely we should add another fractional type, like Rational but with some extra stuff to make it a superset of Double.
One could define 2x2 types: {finit, infinit} x {rational, float} Every type containing infinity misses some fundamental mathematical properties, like a natural order and closedness with respect to (+), (-), (*), whereas the types including infinity may be of more interest for numerical applications.