On Feb 11, 2008 6:58 PM, Raymond Hettinger <[EMAIL PROTECTED]> wrote: > During the discussion of PEP 3141, what use cases were envisioned for the > Integral type? Were there some examples of concrete implementations other > than <type 'int'> or <type 'long'??
I believe numpy defines a whole slew of these of different sizes. > I'm asking because I'm unclear about what a class is stating about itself > when it registers as Integral. I'm not sure that most finite fields would > fit into the structure since they all Integrals support logical operations, > are convertible into ints via __index__, andy the must support all of the > operations defined for Reals. An earlier version of the PEP talked about fields and all sort of stuff, but we found nobody cared. > I looked at the reference for Scheme's numeric tower to find guidance, but it > seemed that the notion expressed solely through the "integer?" predicate > which behaves differently than our inheritance tower. For example, the spec > says (rational? 6/10) ==> #t and (integer? 8/4) ==> #t but in our current > implementation Rational(8,4) is not Integral like it is for Scheme. > > Also, Scheme seems apply implement the notions of Exact/Inexact much > differently > than we do: "A number is exact if it was written as an exact constant or was > derived from exact numbers using only exact operations." So, while all > integers are exact, some floats and decimal constants could also be exact. > This matches how exactness is used in the decimal module -- all constants > start as exact and operations can return either exact or inexact (and the > module signals when this occurs). Our module says Integrals are Exact and > makes no further assertions. I expect that there are separate useful notions of exactness and inexactness, one solely based on the type, and one based on value. -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-3000 mailing list [email protected] http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com
