Commit fe72ab13 authored by Guido van Rossum's avatar Guido van Rossum

* lib2.tex (sys): updated sys.std{in,out,err} docs. Added

  sys.tracebacklimit.
* tut.tex (Exceptions): change text printed by traceback.
* lib5.tex (audioop): added minmax.
* lib5.tex (audioop.getsample): move wandered paragraph back
* lib3.tex, partparse.py: undo mucking with \nopagebreak (didn't work).
* partparse.py: ignore \nopagebreak command
* ref5.tex: added description of lambda forms.
* ref7.tex: added reference to lambda forms to section on function
  definition.
* lib1.tex: removed lambda as built-in function (it is now a special
  form).  Also removed feature of filter, map, reduce to turn a string
  argument into an anonymous function.
parent 1b5257c3
...@@ -41,13 +41,14 @@ qua: ...@@ -41,13 +41,14 @@ qua:
latex qua latex qua
dvips qua >qua.ps 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 python partparse.py -o @lib.texi lib[1-5].tex
mv @lib.texi lib.texi mv @lib.texi lib.texi
.PRECIOUS: 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 emacs -batch -l fix.el -f save-buffer -kill
makeinfo +footnote-style end +fill-column 72 +paragraph-indent 0 \ makeinfo +footnote-style end +fill-column 72 +paragraph-indent 0 \
lib.texi lib.texi
......
...@@ -604,10 +604,11 @@ object. $x ~\verb\is not\~ y$ yields the inverse truth value. ...@@ -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: Boolean operations have the lowest priority of all Python operations:
\begin{verbatim} \begin{verbatim}
condition: or_test condition: or_test | lambda_form
or_test: and_test | or_test "or" and_test or_test: and_test | or_test "or" and_test
and_test: not_test | and_test "and" not_test and_test: not_test | and_test "and" not_test
not_test: comparison | "not" not_test not_test: comparison | "not" not_test
lambda_form: "lambda" [parameter_list]: condition
\end{verbatim} \end{verbatim}
In the context of Boolean operations, and also when conditions are 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 ...@@ -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\, same type as its argument, so e.g. \verb\not 'foo'\ yields \verb\0\,
not \verb\''\.) 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} \section{Expression lists and condition lists}
\indexii{expression}{list} \indexii{expression}{list}
\indexii{condition}{list} \indexii{condition}{list}
......
...@@ -292,6 +292,10 @@ parameters) are bound to the (formal) parameters, as follows: ...@@ -292,6 +292,10 @@ parameters) are bound to the (formal) parameters, as follows:
\indexii{parameter}{formal} \indexii{parameter}{formal}
\indexii{parameter}{actual} \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} \begin{itemize}
\item \item
......
...@@ -604,10 +604,11 @@ object. $x ~\verb\is not\~ y$ yields the inverse truth value. ...@@ -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: Boolean operations have the lowest priority of all Python operations:
\begin{verbatim} \begin{verbatim}
condition: or_test condition: or_test | lambda_form
or_test: and_test | or_test "or" and_test or_test: and_test | or_test "or" and_test
and_test: not_test | and_test "and" not_test and_test: not_test | and_test "and" not_test
not_test: comparison | "not" not_test not_test: comparison | "not" not_test
lambda_form: "lambda" [parameter_list]: condition
\end{verbatim} \end{verbatim}
In the context of Boolean operations, and also when conditions are 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 ...@@ -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\, same type as its argument, so e.g. \verb\not 'foo'\ yields \verb\0\,
not \verb\''\.) 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} \section{Expression lists and condition lists}
\indexii{expression}{list} \indexii{expression}{list}
\indexii{condition}{list} \indexii{condition}{list}
......
...@@ -292,6 +292,10 @@ parameters) are bound to the (formal) parameters, as follows: ...@@ -292,6 +292,10 @@ parameters) are bound to the (formal) parameters, as follows:
\indexii{parameter}{formal} \indexii{parameter}{formal}
\indexii{parameter}{actual} \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} \begin{itemize}
\item \item
......
...@@ -1760,7 +1760,7 @@ however, and result in error messages as shown here: ...@@ -1760,7 +1760,7 @@ however, and result in error messages as shown here:
\bcode\small\begin{verbatim} \bcode\small\begin{verbatim}
>>> 10 * (1/0) >>> 10 * (1/0)
Stack backtrace (innermost last): Traceback (innermost last):
File "<stdin>", line 1 File "<stdin>", line 1
ZeroDivisionError: integer division or modulo ZeroDivisionError: integer division or modulo
>>> 4 + foo*3 >>> 4 + foo*3
......
...@@ -1760,7 +1760,7 @@ however, and result in error messages as shown here: ...@@ -1760,7 +1760,7 @@ however, and result in error messages as shown here:
\bcode\small\begin{verbatim} \bcode\small\begin{verbatim}
>>> 10 * (1/0) >>> 10 * (1/0)
Stack backtrace (innermost last): Traceback (innermost last):
File "<stdin>", line 1 File "<stdin>", line 1
ZeroDivisionError: integer division or modulo ZeroDivisionError: integer division or modulo
>>> 4 + foo*3 >>> 4 + foo*3
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment