[Python-checkins] CVS: python/dist/src/Doc/ref ref5.tex,1.57,1.58

Jeremy Hylton jhylton@users.sourceforge.net
Mon, 01 Apr 2002 13:05:25 -0800


Update of /cvsroot/python/python/dist/src/Doc/ref
In directory usw-pr-cvs1:/tmp/cvs-serv6783

Modified Files:
	ref5.tex 
Log Message:
Given lambda its own section, instead of burying it in boolean operators.


Index: ref5.tex
===================================================================
RCS file: /cvsroot/python/python/dist/src/Doc/ref/ref5.tex,v
retrieving revision 1.57
retrieving revision 1.58
diff -C2 -d -r1.57 -r1.58
*** ref5.tex	1 Apr 2002 20:52:24 -0000	1.57
--- ref5.tex	1 Apr 2002 21:05:21 -0000	1.58
***************
*** 956,964 ****
  not \code{''}.)
  
  Lambda forms (lambda expressions) have the same syntactic position as
  expressions.  They are a shorthand to create anonymous functions; the
  expression \code{lambda \var{arguments}: \var{expression}}
! yields a function object that behaves virtually identical to one
! defined with
  
  \begin{verbatim}
--- 956,969 ----
  not \code{''}.)
  
+ \section{Lambdas\label{lambdas}}
+ \indexii{lambda}{expression}
+ \indexii{lambda}{form}
+ \indexii{anonmymous}{function}
+ 
  Lambda forms (lambda expressions) have the same syntactic position as
  expressions.  They are a shorthand to create anonymous functions; the
  expression \code{lambda \var{arguments}: \var{expression}}
! yields a function object.  The unnamed object behaves like a function
! object define with
  
  \begin{verbatim}
***************
*** 970,1001 ****
  that functions created with lambda forms cannot contain statements.
  \label{lambda}
- \indexii{lambda}{expression}
- \indexii{lambda}{form}
- \indexii{anonmymous}{function}
- 
- \strong{Programmer's note:} Prior to Python 2.1, a lambda form defined
- inside a function has no access to names defined in the function's
- namespace.  This is because Python had only two scopes: local and
- global.  A common work-around was to use default argument values to
- pass selected variables into the lambda's namespace, e.g.:
- 
- \begin{verbatim}
- def make_incrementor(increment):
-     return lambda x, n=increment: x+n
- \end{verbatim}
- 
- As of Python 2.1, nested scopes were introduced, and this work-around
- has not been necessary.  Python 2.1 supports nested scopes in modules
- which include the statement \samp{from __future__ import
- nested_scopes}, and more recent versions of Python enable nested
- scopes by default.  This version works starting with Python 2.1:
- 
- \begin{verbatim}
- from __future__ import nested_scopes
- 
- def make_incrementor(increment):
-     return lambda x: x+increment
- \end{verbatim}
- 
  
  \section{Expression lists\label{exprlists}}
--- 975,978 ----