[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 ----