diff --git a/Doc/Makefile b/Doc/Makefile index f4a747d8b40..d13f59fa7c4 100644 --- a/Doc/Makefile +++ b/Doc/Makefile @@ -41,13 +41,14 @@ qua: latex qua dvips qua >qua.ps -lib.texi: lib1.tex lib2.tex lib3.tex lib4.tex lib5.tex texipre.dat texipost.dat +lib.texi: lib1.tex lib2.tex lib3.tex lib4.tex lib5.tex \ + texipre.dat texipost.dat partparse.py python partparse.py -o @lib.texi lib[1-5].tex mv @lib.texi lib.texi .PRECIOUS: lib.texi -python-lib.info: lib.texi +python-lib.info: lib.texi fix.el emacs -batch -l fix.el -f save-buffer -kill makeinfo +footnote-style end +fill-column 72 +paragraph-indent 0 \ lib.texi diff --git a/Doc/ref/ref5.tex b/Doc/ref/ref5.tex index 59ba90a4d8e..55f523fb172 100644 --- a/Doc/ref/ref5.tex +++ b/Doc/ref/ref5.tex @@ -604,10 +604,11 @@ object. $x ~\verb\is not\~ y$ yields the inverse truth value. Boolean operations have the lowest priority of all Python operations: \begin{verbatim} -condition: or_test +condition: or_test | lambda_form or_test: and_test | or_test "or" and_test and_test: not_test | and_test "and" not_test not_test: comparison | "not" not_test +lambda_form: "lambda" [parameter_list]: condition \end{verbatim} In the context of Boolean operations, and also when conditions are @@ -638,6 +639,19 @@ invent a value anyway, it does not bother to return a value of the same type as its argument, so e.g. \verb\not 'foo'\ yields \verb\0\, not \verb\''\.) +Lambda forms (lambda expressions) have the same syntactic position as +conditions. They are a shorthand to create anonymous functions; the +expression \verb\lambda\ {\em arguments}\verb\:\ {\em condition} +yields a function object that behaves virtually identical to one +defined with \verb\def\ {\em name}\verb\(\{\em arguments}\verb\) : +return\ {\em condition}. See section \ref{function} for the syntax of +parameter lists. Note that functions created with lambda forms cannot +contain statements. +\label{lambda} +\indexii{lambda}{expression} +\indexii{lambda}{form} +\indexii{anonmymous}{function} + \section{Expression lists and condition lists} \indexii{expression}{list} \indexii{condition}{list} diff --git a/Doc/ref/ref7.tex b/Doc/ref/ref7.tex index 0f96c82788d..670eec0a5e6 100644 --- a/Doc/ref/ref7.tex +++ b/Doc/ref/ref7.tex @@ -292,6 +292,10 @@ parameters) are bound to the (formal) parameters, as follows: \indexii{parameter}{formal} \indexii{parameter}{actual} +It is also possible to create anonymous functions (functions not bound +to a name), for immediate use in expressions. This uses lambda forms, +described in section \ref{lambda}. + \begin{itemize} \item diff --git a/Doc/ref5.tex b/Doc/ref5.tex index 59ba90a4d8e..55f523fb172 100644 --- a/Doc/ref5.tex +++ b/Doc/ref5.tex @@ -604,10 +604,11 @@ object. $x ~\verb\is not\~ y$ yields the inverse truth value. Boolean operations have the lowest priority of all Python operations: \begin{verbatim} -condition: or_test +condition: or_test | lambda_form or_test: and_test | or_test "or" and_test and_test: not_test | and_test "and" not_test not_test: comparison | "not" not_test +lambda_form: "lambda" [parameter_list]: condition \end{verbatim} In the context of Boolean operations, and also when conditions are @@ -638,6 +639,19 @@ invent a value anyway, it does not bother to return a value of the same type as its argument, so e.g. \verb\not 'foo'\ yields \verb\0\, not \verb\''\.) +Lambda forms (lambda expressions) have the same syntactic position as +conditions. They are a shorthand to create anonymous functions; the +expression \verb\lambda\ {\em arguments}\verb\:\ {\em condition} +yields a function object that behaves virtually identical to one +defined with \verb\def\ {\em name}\verb\(\{\em arguments}\verb\) : +return\ {\em condition}. See section \ref{function} for the syntax of +parameter lists. Note that functions created with lambda forms cannot +contain statements. +\label{lambda} +\indexii{lambda}{expression} +\indexii{lambda}{form} +\indexii{anonmymous}{function} + \section{Expression lists and condition lists} \indexii{expression}{list} \indexii{condition}{list} diff --git a/Doc/ref7.tex b/Doc/ref7.tex index 0f96c82788d..670eec0a5e6 100644 --- a/Doc/ref7.tex +++ b/Doc/ref7.tex @@ -292,6 +292,10 @@ parameters) are bound to the (formal) parameters, as follows: \indexii{parameter}{formal} \indexii{parameter}{actual} +It is also possible to create anonymous functions (functions not bound +to a name), for immediate use in expressions. This uses lambda forms, +described in section \ref{lambda}. + \begin{itemize} \item diff --git a/Doc/tut.tex b/Doc/tut.tex index 6fb209f9f7a..532748876a7 100644 --- a/Doc/tut.tex +++ b/Doc/tut.tex @@ -1760,7 +1760,7 @@ however, and result in error messages as shown here: \bcode\small\begin{verbatim} >>> 10 * (1/0) -Stack backtrace (innermost last): +Traceback (innermost last): File "", line 1 ZeroDivisionError: integer division or modulo >>> 4 + foo*3 diff --git a/Doc/tut/tut.tex b/Doc/tut/tut.tex index 6fb209f9f7a..532748876a7 100644 --- a/Doc/tut/tut.tex +++ b/Doc/tut/tut.tex @@ -1760,7 +1760,7 @@ however, and result in error messages as shown here: \bcode\small\begin{verbatim} >>> 10 * (1/0) -Stack backtrace (innermost last): +Traceback (innermost last): File "", line 1 ZeroDivisionError: integer division or modulo >>> 4 + foo*3