[Python-checkins] CVS: python/nondist/peps pep-0202.txt,1.6,1.7

Barry Warsaw bwarsaw@users.sourceforge.net
Tue, 14 Aug 2001 11:43:08 -0700


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

Modified Files:
	pep-0202.txt 
Log Message:
We have assumed control, we have assumed control, we have assumed
control.

Clean this PEP up to reflect current reality, and mark it Final.


Index: pep-0202.txt
===================================================================
RCS file: /cvsroot/python/python/nondist/peps/pep-0202.txt,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** pep-0202.txt	2000/10/30 20:48:44	1.6
--- pep-0202.txt	2001/08/14 18:43:06	1.7
***************
*** 2,7 ****
  Title: List Comprehensions
  Version: $Revision$
! Author: tim@digicool.com (Tim Peters)
! Status: Draft
  Type: Standards Track
  Python-Version: 2.0
--- 2,7 ----
  Title: List Comprehensions
  Version: $Revision$
! Author: barry@zope.com (Barry Warsaw)
! Status: Final
  Type: Standards Track
  Python-Version: 2.0
***************
*** 52,58 ****
      >>> print [(i,f) for i in nums for f in fruit if f[0] == "P" if i%2 == 1]
      [(1, 'Peaches'), (1, 'Pears'), (3, 'Peaches'), (3, 'Pears')]
-     >>> def zip(*args):
-     ...    return apply(map, (None,)+args)
-     ... 
      >>> print [i for i in zip(nums,fruit) if i[0]%2==0]
      [(2, 'Peaches'), (4, 'Bananas')]
--- 52,55 ----
***************
*** 61,76 ****
  Reference Implementation
  
!     SourceForge contains a patch that adds list comprehensions to Python[1].
  
  
  BDFL Pronouncements
  
-     Note: the BDFL refers to Guido van Rossum, Python's Benevolent
-     Dictator For Life.
- 
      - The syntax proposed above is the Right One.
  
!     - The form [x, y for ...] should be disallowed; one should be
!       required to write [(x, y) for ...].
  
      - The form [... for x... for y...] nests, with the last index
--- 58,71 ----
  Reference Implementation
  
!     List comprehensions become part of the Python language with
!     release 2.0, documented in [1].
  
  
  BDFL Pronouncements
  
      - The syntax proposed above is the Right One.
  
!     - The form [x, y for ...] is disallowed; one is required to write
!       [(x, y) for ...].
  
      - The form [... for x... for y...] nests, with the last index
***************
*** 78,135 ****
  
  
- Open Issues
- 
-     Syntax
- 
-         Several people proposed connecting or separating syntax
-         between the various clauses, for example, requiring a
-         semicolon between them to set them apart:
- 
-             [i,f; for i in nums; for f in fruit; if f[0]=="P"; if i%2==1]
- 
-         To minimize strain on the Python parser, Guido has suggested
-         requiring parentheses around the initial tuple:
- 
-             [(i,f) for i in nums for f in fruit if f[0]=="P" if i%2==1]
- 
-     Semantics
- 
-         The semantics of multiple for clauses is not obvious to many
-         people.  Currently, it nests, so that
- 
-             [i,f for i in nums for f in fruit]
- 
-         is functionally equivalent to
- 
-             tmp = []
-             for i in nums:
-                 for f in fruit:
-                     tmp.append((i,f))
- 
-         Other people would read it as if it executed
- 
-             map(None, nums, fruit)
- 
-         It's not clear that this is necessary.  The newly proposed
-         zip() builtin[2] takes care of that case.
- 
-     Stability of the Implementation
- 
-         The current reference implementation is simply an adaptation
-         of Greg Ewing's original demonstration of the concept.  Other
-         than tracking changes to the source code to keep it a valid
-         patch, reindenting the code and switching to function
-         prototypes, nothing has been done to it.  This obviously
-         raises some questions about how stable the code is.  It has
-         not had a lot of exercise, though the patch does include a few
-         test cases.
- 
- 
  References
  
!     [1] https://sourceforge.net/patch/?func=detailpatch&patch_id=100654&group_id=5470
!     [2] Lockstep Iteration, pep-0201.txt
  
  
  Local Variables:
  mode: indented-text
--- 73,82 ----
  
  
  References
  
!     [1] http://www.python.org/doc/current/ref/lists.html#l2h-238
  
  
+ 
  Local Variables:
  mode: indented-text