[Python-checkins] python/nondist/peps pep-0313.txt,NONE,1.1 pep-0000.txt,1.234,1.235

goodger@users.sourceforge.net goodger@users.sourceforge.net
2003年4月01日 09:38:07 -0800


Update of /cvsroot/python/python/nondist/peps
In directory sc8-pr-cvs1:/tmp/cvs-serv1712
Modified Files:
	pep-0000.txt 
Added Files:
	pep-0313.txt 
Log Message:
added PEP 313, Adding Roman Numeral Literals to Python, by Mike Meyer
--- NEW FILE: pep-0313.txt ---
PEP: 313
Title: Adding Roman Numeral Literals to Python
Version: $Revision $
Last-Modified: $Date $
Author: Mike Meyer <mwm@mired.org>
Status: Draft
Type: Standards Track
Content-Type: text/plain
Created: 01-Apr-2003
Python-Version: 2.4
Post-History:
Abstract
 This PEP proposes adding Roman numerals as a literal type. It
 also proposes the new built-in function "roman", which converts an
 object to an integer, then converts the integer to a string that
 is the Roman numeral literal equivalent to the integer.
Rationale
 Roman numerals are used in a number of areas, and adding them to
 Python as literals would make computations in those areas easier.
 For instance, Superbowls are counted with Roman numerals, and many
 older movies have copyright dates in Roman numerals. Further,
 LISP provides a Roman numerals literal package, so adding Roman
 numerals to Python will help ease the LISP-envy sometimes seen in
 comp.lang.python. Besides, the author thinks this is the easiest
 way to get his name on a PEP.
Syntax for Roman literals
 Roman numeral literals will consist of the characters M, D, C, L,
 X, V and I, and only those characters. They must be in upper
 case, and represent an integer with the following rules:
 1. Except as noted below, they must appear in the order M, D, C,
 L, X, V then I. Each occurence of each character adds 1000, 500,
 100, 50, 10, 5 and 1 to the value of the literal, respectively.
 2. Only one D, V or L may appear in any given literal.
 3. At most three Is, Xs and Cs may appear in any given literal.
 4. A single I may appear immediately to the left of the single V,
 followed by no Is, and adds 4 to the value of the literal.
 5. A single I may likewise appear before the last X, followed by
 no Is or Vs, and adds 9 to the value.
 6. X is to L and C as I is to V and X, except the values are 40
 and 90, respectively.
 7. C is to D and M as I is to V and X, except the values are 400
 and 900, respectively.
 Any literal composed entirely of M, D, C, L, X, V and I characters
 that does not follow this format will raise a syntax error,
 because explicit is better than implicit.
Builtin "roman" Function
 The new builtin function "roman" will aide the translation from
 integers to Roman numeral literals. It will accept a single
 object as an argument, and return a string containing the literal
 of the same value. If the argument is not an integer or a
 rational (see PEP 239 [1]) it will passed through the existing
 builtin "int" to obtain the value. This may cause a loss of
 information if the object was a float. If the object is a
 rational, then the result will be formatted as a rational literal
 (see PEP 240 [2]) with the integers in the string being Roman
 numeral literals.
Compatability Issues
 No new keywords are introduced by this proposal. Programs that
 use variable names that are all upper case and contain only the
 characters M, D, C, L, X, V and I will be affected by the new
 literals. These programs will now have syntax errors when those
 variables are assigned, and either syntax errors or subtle bugs
 when those variables are referenced in expressions. Since such
 variable names violate PEP 8 [3], the code is already broken, it
 just wasn't generating exceptions. This proposal corrects that
 oversight in the language.
References
 [1] PEP 239, Adding a Rational Type to Python
 http://www.python.org/peps/pep-0239.html
 [2] PEP 240, Adding a Rational Literal to Python
 http://www.python.org/peps/pep-0240.html
 [3] PEP 8, Style Guide for Python Code
 http://www.python.org/peps/pep-0008.html
Copyright
 This document has been placed in the public domain.
^L
Local Variables:
mode: indented-text
indent-tabs-mode: nil
sentence-end-double-space: t
fill-column: 70
End:
Index: pep-0000.txt
===================================================================
RCS file: /cvsroot/python/python/nondist/peps/pep-0000.txt,v
retrieving revision 1.234
retrieving revision 1.235
diff -C2 -d -r1.234 -r1.235
*** pep-0000.txt	30 Mar 2003 14:46:54 -0000	1.234
--- pep-0000.txt	1 Apr 2003 17:37:46 -0000	1.235
***************
*** 115,118 ****
--- 115,119 ----
 S 311 Simplified GIL Acquisition for Extensions Hammond
 S 312 Simple Implicit Lambda Suzi, Martelli
+ S 313 Adding Roman Numeral Literals to Python Meyer
 
 Finished PEPs (done, implemented in CVS)
***************
*** 317,320 ****
--- 318,322 ----
 S 311 Simplified GIL Acquisition for Extensions Hammond
 S 312 Simple Implicit Lambda Suzi, Martelli
+ S 313 Adding Roman Numeral Literals to Python Meyer
 SR 666 Reject Foolish Indentation Creighton
 
***************
*** 376,379 ****
--- 378,382 ----
 McNamara, Andrew andrewm@object-craft.com.au
 Mick, Trent trentm@activestate.com
+ Meyer, Mike mwm@mired.org
 Montanaro, Skip skip@pobox.com
 Moore, Paul gustav@morpheus.demon.co.uk

AltStyle によって変換されたページ (->オリジナル) /