[Python-checkins] CVS: python/nondist/peps pep-0240.txt,NONE,1.1

Barry Warsaw bwarsaw@users.sourceforge.net
Thu, 15 Mar 2001 20:27:15 -0800


Update of /cvsroot/python/python/nondist/peps
In directory usw-pr-cvs1:/tmp/cvs-serv3668

Added Files:
	pep-0240.txt 
Log Message:
PEP 240, Adding a Rational Literal to Python, Moshe Zadka

[checking in for Moshe, after editorial, spell check, and formatting
passes by Barry]


--- NEW FILE: pep-0240.txt ---
PEP: 240
Title: Adding a Rational Literal to Python
Version: $Revision: 1.1 $
Author: pep@zadka.site.co.il (Moshe Zadka)
Status: Draft
Type: Standards Track
Created: 11-Mar-2001
Python-Version: 2.2
Post-History:


Abstract

    A different PEP[1] suggests adding a builtin rational type to
    Python.  This PEP suggests changing the ddd.ddd float literal to a
    rational in Python, and modifying non-integer division to return
    it.


Rationale

    Rational numbers are useful, and are much harder to use without
    literals.  Making the "obvious" non-integer type one with more
    predictable semantics will surprise new programmers less then
    using floating point numbers.


Proposal

    Literals conforming to the regular expression '\d*.\d*' will be
    rational numbers.


Backwards Compatibility

    The only backwards compatible issue is the type of literals
    mentioned above.  The following migration is suggested:

    1. "from __future__ import rational_literals" will cause all such
       literals to be treated as rational numbers.

    2. Python 2.2 will have a warning, turned off by default, about
       such literals in the absence of a __future__ statement.  The
       warning message will contain information about the __future__
       statement, and indicate that to get floating point literals,
       they should be suffixed with "e0".

    3. Python 2.3 will have the warning turned on by default.  This
       warning will stay in place for 24 months, at which time the
       literals will be rationals and the warning will be removed.


References

    [1] PEP 239, Adding a Rational Type to Python, Zadka,
        http://python.sourceforge.net/peps/pep-0239.html


Copyright

    This document has been placed in the public domain.



Local Variables:
mode: indented-text
indent-tabs-mode: nil
End: