[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

*To*: common-lisp@sail.stanford.edu*Subject*: rational infinity*From*: Masinter.pa@Xerox.COM*Date*: Fri, 06 Feb 1987 16:03:00 -0000

An alternative to JonL's proposal (which encodes rational infinities as 1/0 and -1/0) would be to put the infninity(ies) in a separate class, under number, but not part of rational or ratio or integer. I think this is better than defining infinity using 1/0 or any other encoding because: a) CLtL alludes to such a possibility. b) it is reasonable to want to define an operation as working on, say, integers including +infinity and -infinity, but not arbitrary other ratios. That is, the infinities are more an extension of the integer type than the ratio type. c) it doesn't require modification of definitions which are *not* valid for infinity. For example, you might want to leave +, -, * and / undefined for infinity, but define > >= = /= < <=. d) adding signed infinity in this way doesn't preclude adding a projective unsigned infinity. I claim that the handling of IEEE floating point infinities was a good design for programming languages where variables must be type declared, and that one couldn't have a variable (binding? oops, wrong discussion) which at various times contained floating point numbers and at other times contained NANs. A Lisp embedding of IEEE floating-point which made NaNs a separate class (type) would have the advantage of being able to more simply defining (or not defining) behavior of operations on them.

- Prev by Date:
**REMF and REMPROP** - Next by Date:
**Re: REMF and REMPROP** - Previous by thread:
**Rational Infinity** - Next by thread:
**Rational Infinity** - Index(es):